From 04f6c49ac5951b679e866aaf683ff7c92c4afd44 Mon Sep 17 00:00:00 2001 From: dj2ls Date: Sat, 2 Apr 2022 14:54:43 +0200 Subject: [PATCH] audio tuning and chat optimisation closes #117 --- .gitignore | 2 + .stignore | 2 + gui/package.json | 2 +- gui/preload-chat.js | 83 +++++++++++++++++++++++++++++++++++----- gui/preload-main.js | 4 +- gui/src/chat-module.html | 23 ++++++++++- gui/src/index.html | 2 +- tnc/data_handler.py | 6 +-- 8 files changed, 106 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 3d3aa25e..e569bfe4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ tnc/codec2 # temporary test artifacts **/build **/Testing + +package-lock.json diff --git a/.stignore b/.stignore index 0378d016..c41ecb16 100644 --- a/.stignore +++ b/.stignore @@ -2,3 +2,5 @@ tnc/__pycache__ tnc/daemon.log tnc/tnc.log gui/node_modules +tnc/build +tnc/dist diff --git a/gui/package.json b/gui/package.json index afcceb66..8724d429 100644 --- a/gui/package.json +++ b/gui/package.json @@ -1,6 +1,6 @@ { "name": "FreeDATA", - "version": "0.3.0-alpha.8", + "version": "0.3.1-alpha.1", "description": "FreeDATA ", "main": "main.js", "scripts": { diff --git a/gui/preload-chat.js b/gui/preload-chat.js index a76d0848..b7ec523b 100644 --- a/gui/preload-chat.js +++ b/gui/preload-chat.js @@ -133,11 +133,47 @@ window.addEventListener('DOMContentLoaded', () => { }); + + // NEW CHAT + + + document.getElementById("createNewChatButton").addEventListener("click", () => { + var dxcallsign = document.getElementById('chatModuleNewDxCall').value; + var uuid = uuidv4() +db.post({ + + _id: uuid, + timestamp: Math.floor(Date.now() / 1000), + dxcallsign: dxcallsign.toUpperCase(), + dxgrid: '---', + msg: 'NULL', + checksum: 'NULL', + type: 'newchat', + status: 'NULL', + uuid: uuid + + }).then(function(response) { + // handle response + console.log("new database entry"); + console.log(response); + }).catch(function(err) { + console.log(err); + }); + db.get(uuid, [{ + attachments: true + }]).then(function(doc) { + // handle doc + update_chat(doc) + }).catch(function(err) { + console.log(err); + }); + }); + // SEND MSG document.getElementById("sendMessage").addEventListener("click", () => { document.getElementById('emojipickercontainer').style.display = "none"; - var dxcallsign = document.getElementById('chatModuleDxCall').value; - dxcallsign = dxcallsign.toUpperCase(); + + var dxcallsign = selected_callsign.toUpperCase(); var chatmessage = document.getElementById('chatModuleMessage').value; console.log(file); console.log(filename); @@ -261,6 +297,7 @@ ipcRenderer.on('action-new-msg-received', (event, arg) => { obj.status = item.status; obj.snr = item.snr; obj.type = item.type; + db.put({ _id: obj.uuid, timestamp: obj.timestamp, @@ -279,6 +316,7 @@ ipcRenderer.on('action-new-msg-received', (event, arg) => { }).catch(function(err) { console.log(err); }); + db.get(item.uuid, { attachments: true }).then(function(doc) { @@ -299,6 +337,7 @@ ipcRenderer.on('action-new-msg-received', (event, arg) => { obj.status = item.status; obj.snr = item.snr; obj.type = item.type; + db.put({ _id: obj.uuid, timestamp: obj.timestamp, @@ -317,6 +356,7 @@ ipcRenderer.on('action-new-msg-received', (event, arg) => { }).catch(function(err) { console.log(err); }); + db.get(item.uuid, { attachments: true }).then(function(doc) { @@ -366,6 +406,7 @@ ipcRenderer.on('action-new-msg-received', (event, arg) => { }).catch(function(err) { console.log(err); }); + db.get(obj.uuid, { attachments: true }).then(function(doc) { @@ -415,12 +456,18 @@ update_chat = function(obj) { callsign_counter++; if (callsign_counter == 1) { var callsign_selected = 'active show' - document.getElementById('chatModuleDxCall').value = dxcallsign; + //document.getElementById('chatModuleDxCall').value = dxcallsign; selected_callsign = dxcallsign; } var new_callsign = ` + + +
+
+ +
${dxcallsign}
${dxgrid}
@@ -435,7 +482,7 @@ update_chat = function(obj) { document.getElementById('nav-tabContent').insertAdjacentHTML("beforeend", message_area); // create eventlistener for listening on clicking on a callsign document.getElementById('chat-' + dxcallsign + '-list').addEventListener('click', function() { - document.getElementById('chatModuleDxCall').value = dxcallsign; + //document.getElementById('chatModuleDxCall').value = dxcallsign; selected_callsign = dxcallsign; // scroll to bottom var element = document.getElementById("message-container"); @@ -457,18 +504,30 @@ update_chat = function(obj) { if (!(document.getElementById('msg-' + obj._id))) { if (obj.type == 'ping') { var new_message = ` -
-

snr: ${obj.snr} - ${timestampShort}

+
+

snr: ${obj.snr} - ${timestamp}

`; } if (obj.type == 'beacon') { var new_message = ` -
-

snr: ${obj.snr} - ${timestampShort}

+
+

snr: ${obj.snr} - ${timestamp}

`; } + + if (obj.type == 'newchat') { + var new_message = ` +
+

new chat openend - ${timestamp}

+
+ `; + } + + + + if (obj.type == 'received') { var new_message = `
@@ -510,14 +569,20 @@ update_chat = function(obj) { // CHECK CHECK CHECK --> This could be done better var id = "chat-" + obj.dxcallsign document.getElementById(id).insertAdjacentHTML("beforeend", new_message); + var element = document.getElementById("message-container"); element.scrollTo(0, element.scrollHeight); + } else if (document.getElementById('msg-' + obj._id)) { id = "msg-" + obj._id; //document.getElementById(id).className = message_class; } // CREATE SAVE TO FOLDER EVENT LISTENER - if ((document.getElementById('save-file-msg-' + obj._id))) { + if (document.getElementById('save-file-msg-' + obj._id) && !document.getElementById('save-file-msg-' + obj._id).hasAttribute('listenerOnClick')) { + + // set Attribute to determine if we already created an EventListener for this element + document.getElementById('save-file-msg-' + obj._id).setAttribute('listenerOnClick', 'true'); + document.getElementById('save-file-msg-' + obj._id).addEventListener("click", () => { saveFileToFolder(obj._id) }); diff --git a/gui/preload-main.js b/gui/preload-main.js index f233873c..52dd453b 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -287,9 +287,9 @@ document.getElementById('openReceivedFilesFolder').addEventListener('click', () // direct document.getElementById("radio-control-switch1").addEventListener("click", () => { - document.getElementById("radio-control-rigctl").style.visibility = 'hidden'; + //document.getElementById("radio-control-rigctl").style.visibility = 'hidden'; document.getElementById("radio-control-rigctld").style.visibility = 'hidden'; - document.getElementById("radio-control-rigctl").style.display = 'none'; + //document.getElementById("radio-control-rigctl").style.display = 'none'; document.getElementById("radio-control-rigctld").style.display = 'none'; document.getElementById("radio-control-direct").style.display = 'block'; diff --git a/gui/src/chat-module.html b/gui/src/chat-module.html index d1b0f13c..e8a4a29b 100644 --- a/gui/src/chat-module.html +++ b/gui/src/chat-module.html @@ -33,8 +33,25 @@
- + + + + + + +
+ +
+ + + +
+ +
+ +
+
@@ -63,6 +80,8 @@
+ +
@@ -87,7 +106,7 @@
- + diff --git a/gui/src/index.html b/gui/src/index.html index b9833980..5107bc65 100644 --- a/gui/src/index.html +++ b/gui/src/index.html @@ -1186,7 +1186,7 @@ TX Level --- - +
diff --git a/tnc/data_handler.py b/tnc/data_handler.py index 5c4c5633..e65ba702 100644 --- a/tnc/data_handler.py +++ b/tnc/data_handler.py @@ -61,7 +61,7 @@ class DATA(): self.data_frame_bof = b'BOF' # 2 bytes for the BOF End of File indicator in a data frame self.data_frame_eof = b'EOF' # 2 bytes for the EOF End of File indicator in a data frame - self.rx_n_max_retries_per_burst = 30 + self.rx_n_max_retries_per_burst = 50 self.n_retries_per_burst = 0 self.received_low_bandwith_mode = False # indicator if we recevied a low bandwith mode channel ope ner @@ -94,7 +94,7 @@ class DATA(): self.rx_frame_bof_received = False self.rx_frame_eof_received = False - self.transmission_timeout = 90 # transmission timeout in seconds + self.transmission_timeout = 360 # transmission timeout in seconds worker_thread_transmit = threading.Thread(target=self.worker_transmit, name="worker thread transmit",daemon=True) worker_thread_transmit.start() @@ -1626,7 +1626,7 @@ class DATA(): if static.ENABLE_FSK: modem.MODEM_TRANSMIT_QUEUE.put(['FSK_LDPC_0',2,500,txbuffer]) else: - modem.MODEM_TRANSMIT_QUEUE.put([14,1,0,txbuffer]) + modem.MODEM_TRANSMIT_QUEUE.put([14,2,500,txbuffer]) # wait while transmitting while static.TRANSMITTING: time.sleep(0.01)