From 236dd75d38710ff3671ec9f2cb1395ab0fed3e15 Mon Sep 17 00:00:00 2001 From: Mashintime Date: Fri, 3 Feb 2023 17:14:02 -0500 Subject: [PATCH 01/32] Less fancy graphics if !high_graphics --- gui/preload-main.js | 50 +++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/gui/preload-main.js b/gui/preload-main.js index b9ec859b..8143b36b 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -1902,45 +1902,27 @@ var speedChartOptions = { document.getElementById("rigctld_state").className = "btn btn-secondary btn-sm"; } + let bcn = document.getElementById("startBeacon"); - - // BEACON STATE - /* - if (arg.beacon_state == 'True') { - document.getElementById("startBeacon").className = "btn btn-sm btn-success spinner-grow"; - document.getElementById("startBeacon").disabled = true; - document.getElementById("beaconInterval").disabled = true; - document.getElementById("stopBeacon").disabled = false; - } else if (arg.beacon_state == 'False') { - document.getElementById("startBeacon").className = "btn btn-sm btn-success"; - document.getElementById("startBeacon").disabled = false; - document.getElementById("beaconInterval").disabled = false; - document.getElementById("stopBeacon").disabled = true; - } else { - document.getElementById("startBeacon").className = "btn btn-sm btn-success"; - document.getElementById("startBeacon").disabled = false; - document.getElementById("stopBeacon").disabled = true; - document.getElementById("beaconInterval").disabled = false; - } - */ switch (arg.beacon_state){ case 'True': - document.getElementById("startBeacon").className = "btn btn-sm btn-success spinner-grow"; - document.getElementById("startBeacon").disabled = true; + if (config.high_graphics.toUpperCase() == "TRUE") { + bcn.className = "btn btn-sm btn-success spinner-grow force-gpu"; + document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1"); + } else { + bcn.className = "btn btn-sm btn-success"; + document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1 text-success text-uppercase"); + } + bcn.disabled = true; document.getElementById("beaconInterval").disabled = true; document.getElementById("stopBeacon").disabled = false; break; - case 'False': - document.getElementById("startBeacon").className = "btn btn-sm btn-success"; - document.getElementById("startBeacon").disabled = false; - document.getElementById("beaconInterval").disabled = false; - document.getElementById("stopBeacon").disabled = true; - break; default: - document.getElementById("startBeacon").className = "btn btn-sm btn-success"; - document.getElementById("startBeacon").disabled = false; - document.getElementById("stopBeacon").disabled = true; + document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1"); + bcn.className = "btn btn-sm btn-success"; + bcn.disabled = false; document.getElementById("beaconInterval").disabled = false; + document.getElementById("stopBeacon").disabled = true; break; } // dbfs @@ -2954,11 +2936,13 @@ function set_CPU_mode() { toggleClass("transmission_progress","progress-bar-striped",true); } } -//Teomporarily disable a button with timeout +//Temporarily disable a button with timeout function pauseButton(btn, timems) { btn.disabled = true; var curText = btn.innerHTML; - btn.innerHTML = ""; + if (config.high_graphics.toUpperCase() == "TRUE") { + btn.innerHTML = ""; + } setTimeout(()=>{ btn.innerHTML=curText; btn.disabled = false;}, timems) From 877f8f468cd08da5ca25e0acbf3f9f70dd6b2f79 Mon Sep 17 00:00:00 2001 From: Mashintime Date: Fri, 3 Feb 2023 17:17:15 -0500 Subject: [PATCH 02/32] Add id to beacon text, move fancy gui setting with other gui settings --- gui/src/index.html | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gui/src/index.html b/gui/src/index.html index 3b41caa6..a875e712 100644 --- a/gui/src/index.html +++ b/gui/src/index.html @@ -814,7 +814,7 @@
-
Beacon
+
Beacon
+
+ + +
Update channel
-
- - -
From cf5d25a8e7447184aa43c2535a12a07ff9946e9c Mon Sep 17 00:00:00 2001 From: Mashintime Date: Sat, 4 Feb 2023 00:28:28 -0500 Subject: [PATCH 03/32] Small tweaks, cleanup --- gui/preload-main.js | 157 ++------------------------------------------ 1 file changed, 6 insertions(+), 151 deletions(-) diff --git a/gui/preload-main.js b/gui/preload-main.js index 8143b36b..db81343a 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -1484,14 +1484,6 @@ document.getElementById('hamlib_rigctld_stop').addEventListener('click', () => { }; ipcRenderer.send('request-show-chat-window', Data); }) - - - - - - - - }) //Listen for events caused by tnc 'tnc-message's @@ -1563,9 +1555,7 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { // DATA STATE global.rxBufferLengthTnc = arg.rx_buffer_length - // START OF SCATTER CHART - const scatterConfig = { plugins: { legend: { @@ -1574,7 +1564,6 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { tooltip: { enabled: false }, - annotation: { annotations: { line1: { @@ -1593,9 +1582,6 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { } } }, - - - }, animations: false, scales: { @@ -1610,7 +1596,6 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { } }, y: { - display: true, min: -80, max: 80, @@ -1654,7 +1639,6 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { // END OF SCATTER CHART // START OF SPEED CHART - var speedDataTime = [] if (typeof(arg.speed_list) == 'undefined') { @@ -1683,7 +1667,6 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { speedDataSnr.push(arg.speed_list[i].snr) } - var speedChartConfig = { type: 'line', }; @@ -1710,7 +1693,6 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { yAxisID: 'SPEED', } ], - }; var speedChartOptions = { @@ -1748,19 +1730,9 @@ var speedChartOptions = { global.speedChart.update(); } } - // END OF SPEED CHART // PTT STATE - /* - if (arg.ptt_state == 'True') { - document.getElementById("ptt_state").className = "btn btn-sm btn-danger"; - } else if (arg.ptt_state == 'False') { - document.getElementById("ptt_state").className = "btn btn-sm btn-success"; - } else { - document.getElementById("ptt_state").className = "btn btn-sm btn-secondary"; - } - */ switch (arg.ptt_state){ case 'True': document.getElementById("ptt_state").className = "btn btn-sm btn-danger"; @@ -1771,33 +1743,16 @@ var speedChartOptions = { default: document.getElementById("ptt_state").className = "btn btn-sm btn-secondary"; break; - } + // AUDIO RECORDING if (arg.audio_recording == 'True') { - document.getElementById("startStopRecording").className = "btn btn-sm btn-danger"; document.getElementById("startStopRecording").textContent = "Stop Rec" - } else if (arg.ptt_state == 'False') { - document.getElementById("startStopRecording").className = "btn btn-sm btn-danger"; - document.getElementById("startStopRecording").textContent = "Start Rec" } else { - document.getElementById("startStopRecording").className = "btn btn-sm btn-danger"; document.getElementById("startStopRecording").textContent = "Start Rec" } // CHANNEL BUSY STATE - /* - if (arg.channel_busy == 'True') { - document.getElementById("channel_busy").className = "btn btn-sm btn-danger"; - - } else if (arg.channel_busy == 'False') { - document.getElementById("channel_busy").className = "btn btn-sm btn-success"; - - } else { - document.getElementById("channel_busy").className = "btn btn-sm btn-secondary"; - - } - */ switch (arg.channel_busy){ case 'True': document.getElementById("channel_busy").className = "btn btn-sm btn-danger"; @@ -1811,19 +1766,6 @@ var speedChartOptions = { } // BUSY STATE - /* - if (arg.busy_state == 'BUSY') { - document.getElementById("busy_state").className = "btn btn-sm btn-danger"; - document.getElementById("startTransmission").disabled = true; - //document.getElementById("stopTransmission").disabled = false; - } else if (arg.busy_state == 'IDLE') { - document.getElementById("busy_state").className = "btn btn-sm btn-success"; - } else { - document.getElementById("busy_state").className = "btn btn-sm btn-secondary"; - document.getElementById("startTransmission").disabled = true; - //document.getElementById("stopTransmission").disabled = false; - } - */ switch(arg.busy_state){ case 'BUSY': document.getElementById("busy_state").className = "btn btn-sm btn-danger"; @@ -1839,57 +1781,22 @@ var speedChartOptions = { } // ARQ STATE - /* - if (arg.arq_state == 'True') { - document.getElementById("arq_state").className = "btn btn-sm btn-warning"; - //document.getElementById("startTransmission").disabled = true; - document.getElementById("startTransmission").disabled = false; - //document.getElementById("stopTransmission").disabled = false; - } else if (arg.arq_state == 'False') { - document.getElementById("arq_state").className = "btn btn-sm btn-secondary"; - document.getElementById("startTransmission").disabled = false; - //document.getElementById("stopTransmission").disabled = true; - } else { - document.getElementById("arq_state").className = "btn btn-sm btn-secondary"; - //document.getElementById("startTransmission").disabled = true; - document.getElementById("startTransmission").disabled = false; - //document.getElementById("stopTransmission").disabled = false; - } - */ switch (arg.arq_state){ case 'True': document.getElementById("arq_state").className = "btn btn-sm btn-warning"; document.getElementById("startTransmission").disabled = false; break; - case 'False': - document.getElementById("arq_state").className = "btn btn-sm btn-secondary"; - document.getElementById("startTransmission").disabled = false; - break; default: document.getElementById("arq_state").className = "btn btn-sm btn-secondary"; document.getElementById("startTransmission").disabled = false; break; } - // ARQ SESSION - /* - if (arg.arq_session == 'True') { - document.getElementById("arq_session").className = "btn btn-sm btn-warning"; - } else if (arg.arq_session == 'False') { - document.getElementById("arq_session").className = "btn btn-sm btn-secondary"; - - } else { - document.getElementById("arq_session").className = "btn btn-sm btn-secondary"; - - } - */ + // ARQ SESSION switch (arg.arq_session){ case 'True': document.getElementById("arq_session").className = "btn btn-sm btn-warning"; break; - case 'False': - document.getElementById("arq_session").className = "btn btn-sm btn-secondary"; - break; default: document.getElementById("arq_session").className = "btn btn-sm btn-secondary"; break; @@ -1902,12 +1809,13 @@ var speedChartOptions = { document.getElementById("rigctld_state").className = "btn btn-secondary btn-sm"; } - let bcn = document.getElementById("startBeacon"); + // BEACON + let bcn = document.getElementById("startBeacon"); switch (arg.beacon_state){ case 'True': if (config.high_graphics.toUpperCase() == "TRUE") { - bcn.className = "btn btn-sm btn-success spinner-grow force-gpu"; + bcn.className = "btn btn-sm btn-success spinner-grow force-gpu"; document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1"); } else { bcn.className = "btn btn-sm btn-success"; @@ -1950,23 +1858,6 @@ var speedChartOptions = { document.getElementById("bandwidth").textContent = arg.bandwidth; // SET SPEED LEVEL - /* - if(arg.speed_level >= 0) { - document.getElementById("speed_level").className = "bi bi-reception-1"; - } - if(arg.speed_level >= 1) { - document.getElementById("speed_level").className = "bi bi-reception-2"; - } - if(arg.speed_level >= 2) { - document.getElementById("speed_level").className = "bi bi-reception-3"; - } - if(arg.speed_level >= 3) { - document.getElementById("speed_level").className = "bi bi-reception-4"; - } - if(arg.speed_level >= 4) { - document.getElementById("speed_level").className = "bi bi-reception-4"; - } - */ switch (arg.speed_level){ case '0': document.getElementById("speed_level").className = "bi bi-reception-1"; @@ -1982,8 +1873,6 @@ var speedChartOptions = { break; } - - // SET TOTAL BYTES if (typeof(arg.total_bytes) == 'undefined') { var total_bytes = 0; @@ -2022,13 +1911,10 @@ var speedChartOptions = { var myGrid = document.getElementById("myGrid").value; try { var dist = parseInt(distance(myGrid, dxGrid)) + ' km'; - //document.getElementById("pingDistance").innerHTML = dist; document.getElementById("dataModalPingDistance").textContent = dist; } catch { - //document.getElementById("pingDistance").innerHTML = '---'; document.getElementById("dataModalPingDistance").textContent = '---'; } - //document.getElementById("pingDB").innerHTML = arg.stations[i]['snr']; document.getElementById("dataModalPingDB").textContent = arg.stations[i]['snr']; } @@ -2082,17 +1968,7 @@ var speedChartOptions = { var dataTypeText = document.createElement('span'); dataTypeText.innerText = arg.stations[i]['datatype']; dataType.appendChild(dataTypeText); - /* - if(arg.stations[i]['datatype'] == 'DATA-CHANNEL'){ - dataTypeText.innerText = 'DATA-C'; - dataType.appendChild(dataTypeText); - } - - if(arg.stations[i]['datatype'] == 'SESSION-HB'){ - dataTypeText.innerHTML = ''; - dataType.appendChild(dataTypeText); - } - */ + switch (arg.stations[i]['datatype']){ case 'DATA-CHANNEL': dataTypeText.innerText = 'DATA-C'; @@ -2103,28 +1979,7 @@ var speedChartOptions = { dataType.appendChild(dataTypeText); break; } - /* - if (dataTypeText.innerText == 'CQ CQ CQ') { - row.classList.add("table-success"); - } - if (dataTypeText.innerText == 'DATA-C') { - dataTypeText.innerHTML = ''; - row.classList.add("table-warning"); - } - - if (dataTypeText.innerText == 'BEACON') { - row.classList.add("table-light"); - } - - if (dataTypeText.innerText == 'PING') { - row.classList.add("table-info"); - } - - if (dataTypeText.innerText == 'PING-ACK') { - row.classList.add("table-primary"); - } - */ switch (dataTypeText.innerText){ case 'CQ CQ CQ': row.classList.add("table-success"); From 0364ac794e5cb680a2963f15e1b7b55e849839e0 Mon Sep 17 00:00:00 2001 From: Mashintime Date: Sat, 4 Feb 2023 06:00:53 -0500 Subject: [PATCH 04/32] Show connected station, show RX byte rate, responsive footer --- gui/main.js | 4 + gui/preload-main.js | 65 +- gui/sock.js | 3 + gui/src/index.html | 1405 ++++++++++++++++++++++++++----------------- 4 files changed, 926 insertions(+), 551 deletions(-) diff --git a/gui/main.js b/gui/main.js index 808a45d8..2f84b768 100644 --- a/gui/main.js +++ b/gui/main.js @@ -467,6 +467,10 @@ ipcMain.on('request-update-transmission-status', (event, arg) => { win.webContents.send('action-update-transmission-status',arg); }); +ipcMain.on('request-update-reception-status', (event, arg) => { + win.webContents.send('action-update-reception-status',arg); +}); + ipcMain.on('request-open-tnc-log', () => { logViewer.show(); }); diff --git a/gui/preload-main.js b/gui/preload-main.js index db81343a..d8c4c85b 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -1486,6 +1486,33 @@ document.getElementById('hamlib_rigctld_stop').addEventListener('click', () => { }) }) +//Listen for events caused by tnc 'tnc-message' receiving +ipcRenderer.on('action-update-reception-status', (event, arg) => { + var data =arg["data"][0]; + //var txprog = document.getElementById("transmission_progress") + + ipcRenderer.send('request-show-electron-progressbar',data.percent); + // SET BYTES PER MINUTE + if (typeof(data.bytesperminute) == 'undefined') { + var arq_bytes_per_minute = 0; + } else { + var arq_bytes_per_minute = data.bytesperminute; + } + document.getElementById("bytes_per_min_rx").textContent = arq_bytes_per_minute; + + // SET BYTES PER MINUTE COMPRESSED + var compress = data.compression; + if (isNaN(compress)) { + compress = 1; + } + var arq_bytes_per_minute_compressed = Math.round(arq_bytes_per_minute * compress); + document.getElementById("bytes_per_min_rx").setAttribute('data-bs-original-title',"raw data rate modem in bytes per minute (" + arq_bytes_per_minute_compressed + " compressed)"); + if (!(typeof(data.dxcallsign) == 'undefined')) { + //console.log("Received dxcallsign(rx-status): ", data.dxcallsign); + document.getElementById("txtConnectedWith").textContent=data.dxcallsign; + } +}); + //Listen for events caused by tnc 'tnc-message's ipcRenderer.on('action-update-transmission-status', (event, arg) => { var data =arg["data"][0]; @@ -1530,7 +1557,11 @@ ipcRenderer.on('action-update-transmission-status', (event, arg) => { compress = 1; } var arq_bytes_per_minute_compressed = Math.round(arq_bytes_per_minute * compress); - document.getElementById("bytes_per_min_compressed").textContent = arq_bytes_per_minute_compressed; + document.getElementById("bytes_per_min").setAttribute('data-bs-original-title',"raw data rate modem in bytes per minute (" + arq_bytes_per_minute_compressed + " compressed)"); + if (!(typeof(data.dxcallsign) == 'undefined')) { + //console.log("Received dxcallsign(tx-status): ", data.dxcallsign); + document.getElementById("txtConnectedWith").textContent=data.dxcallsign; + } }); @@ -1792,15 +1823,25 @@ var speedChartOptions = { break; } - // ARQ SESSION - switch (arg.arq_session){ - case 'True': - document.getElementById("arq_session").className = "btn btn-sm btn-warning"; - break; - default: - document.getElementById("arq_session").className = "btn btn-sm btn-secondary"; - break; - } + // ARQ SESSION + switch (arg.arq_session){ + case 'True': + document.getElementById("arq_session").className = "btn btn-sm btn-warning"; + break; + default: + document.getElementById("arq_session").className = "btn btn-sm btn-secondary"; + break; + } + + if (arg.arq_state == 'True' || arg.arq_session == 'True') { + toggleClass("spnConnectedWith","text-success",true); + if (!(typeof(arg.dxcallsign) == 'undefined')) { + //console.log("Received dxcallsign: " + arg.dxcallsign); + document.getElementById("txtConnectedWith").textContent=arg.dxcallsign; + } + } else { + toggleClass("spnConnectedWith","text-success",false); + } // HAMLIB STATUS if (arg.hamlib_status == 'connected') { @@ -1814,6 +1855,7 @@ var speedChartOptions = { switch (arg.beacon_state){ case 'True': + bcn.disabled = true; if (config.high_graphics.toUpperCase() == "TRUE") { bcn.className = "btn btn-sm btn-success spinner-grow force-gpu"; document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1"); @@ -1821,16 +1863,15 @@ var speedChartOptions = { bcn.className = "btn btn-sm btn-success"; document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1 text-success text-uppercase"); } - bcn.disabled = true; document.getElementById("beaconInterval").disabled = true; document.getElementById("stopBeacon").disabled = false; break; default: document.getElementById("txtBeacon").setAttribute("class","input-group-text p-1"); bcn.className = "btn btn-sm btn-success"; - bcn.disabled = false; document.getElementById("beaconInterval").disabled = false; document.getElementById("stopBeacon").disabled = true; + bcn.disabled = false; break; } // dbfs diff --git a/gui/sock.js b/gui/sock.js index 545ae9f6..8d956acf 100644 --- a/gui/sock.js +++ b/gui/sock.js @@ -346,6 +346,9 @@ client.on('data', function(socketdata) { } else if (data['status'] == 'waiting') { ipcRenderer.send('request-show-arq-toast-datachannel-waiting', {data: [data]}); + // ARQ RECEIVING + } else if (data['status'] == 'receiving') { + ipcRenderer.send('request-update-reception-status', {data: [data]}); // ARQ TRANSMISSION FAILED } else if (data['status'] == 'failed') { diff --git a/gui/src/index.html b/gui/src/index.html index a875e712..a50f93ca 100644 --- a/gui/src/index.html +++ b/gui/src/index.html @@ -21,32 +21,62 @@
@@ -71,196 +104,252 @@
-