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