From 5774c642ecf7388edc4bc10f62de2513e3ec30a7 Mon Sep 17 00:00:00 2001 From: DJ2LS <75909252+DJ2LS@users.noreply.github.com> Date: Fri, 18 Nov 2022 13:08:37 +0100 Subject: [PATCH] added hamlib connection state indicator --- gui/preload-main.js | 8 ++++++++ gui/sock.js | 1 + gui/src/index.html | 4 ++++ tnc/modem.py | 3 ++- tnc/rigctld.py | 5 ++++- tnc/sock.py | 1 + tnc/static.py | 1 + 7 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gui/preload-main.js b/gui/preload-main.js index acc876b9..f31f49ce 100644 --- a/gui/preload-main.js +++ b/gui/preload-main.js @@ -1459,6 +1459,14 @@ ipcRenderer.on('action-update-tnc-state', (event, arg) => { } + // HAMLIB STATUS + if (arg.hamlib_status == 'connected') { + document.getElementById("rigctld_state").className = "btn btn-success btn-sm"; + + } else { + document.getElementById("rigctld_state").className = "btn btn-secondary btn-sm"; + } + // BEACON STATE diff --git a/gui/sock.js b/gui/sock.js index bf2076b0..eef6ba10 100644 --- a/gui/sock.js +++ b/gui/sock.js @@ -221,6 +221,7 @@ client.on('data', function(socketdata) { arq_transmission_percent: data['arq_transmission_percent'], stations: data['stations'], beacon_state: data['beacon_state'], + hamlib_status: data['hamlib_status'], }; ipcRenderer.send('request-update-tnc-state', Data); diff --git a/gui/src/index.html b/gui/src/index.html index 880e7965..d0000a4d 100644 --- a/gui/src/index.html +++ b/gui/src/index.html @@ -1074,6 +1074,10 @@
+ +
+ +
diff --git a/tnc/modem.py b/tnc/modem.py index b3bda5b8..07f11305 100644 --- a/tnc/modem.py +++ b/tnc/modem.py @@ -830,10 +830,11 @@ class RF: - static.HAMLIB_BANDWIDTH """ while True: - threading.Event().wait(0.5) + threading.Event().wait(1.0) static.HAMLIB_FREQUENCY = self.hamlib.get_frequency() static.HAMLIB_MODE = self.hamlib.get_mode() static.HAMLIB_BANDWIDTH = self.hamlib.get_bandwidth() + static.HAMLIB_STATUS = self.hamlib.get_status() def calculate_fft(self) -> None: """ diff --git a/tnc/rigctld.py b/tnc/rigctld.py index 076f3a93..8f0e8854 100644 --- a/tnc/rigctld.py +++ b/tnc/rigctld.py @@ -6,7 +6,7 @@ import socket import time - +import static import structlog # set global hamlib version @@ -136,6 +136,9 @@ class radio: return b"" + def get_status(self): + """ """ + return "connected" if self.connected else "unknown/disconnected" def get_mode(self): """ """ try: diff --git a/tnc/sock.py b/tnc/sock.py index 7deeaa4e..d1d0acb5 100644 --- a/tnc/sock.py +++ b/tnc/sock.py @@ -551,6 +551,7 @@ def send_tnc_state(): "mycallsign": str(static.MYCALLSIGN, encoding), "dxcallsign": str(static.DXCALLSIGN, encoding), "dxgrid": str(static.DXGRID, encoding), + "hamlib_status": str(static.HAMLIB_STATUS, encoding), } # add heard stations to heard stations object diff --git a/tnc/static.py b/tnc/static.py index c769cd2d..5a77287c 100644 --- a/tnc/static.py +++ b/tnc/static.py @@ -60,6 +60,7 @@ HAMLIB_RADIOCONTROL: str = "direct" HAMLIB_RIGCTLD_IP: str = "127.0.0.1" HAMLIB_RIGCTLD_PORT: str = "4532" +HAMLIB_STATUS: str = "unknown/disconnected" HAMLIB_FREQUENCY: int = 0 HAMLIB_MODE: str = "" HAMLIB_BANDWIDTH: int = 0