diff --git a/src/cfclient/ui/main.py b/src/cfclient/ui/main.py
index b3a3b971..6cfc8caf 100644
--- a/src/cfclient/ui/main.py
+++ b/src/cfclient/ui/main.py
@@ -99,6 +99,12 @@ class MainUI(QtWidgets.QMainWindow, main_window_class):
connectionFailedSignal = pyqtSignal(str, str)
disconnectedSignal = pyqtSignal(str)
linkQualitySignal = pyqtSignal(float)
+ latencySignal = pyqtSignal(float)
+ uplinkRSSISignal = pyqtSignal(float)
+ uplinkRateSignal = pyqtSignal(float)
+ downlinkRateSignal = pyqtSignal(float)
+ uplinkCongestionSignal = pyqtSignal(float)
+ downlinkCongestionSignal = pyqtSignal(float)
_input_device_error_signal = pyqtSignal(str)
_input_discovery_signal = pyqtSignal(object)
@@ -226,10 +232,36 @@ def __init__(self, *args):
self.batteryBar.setTextVisible(False)
self.linkQualityBar.setTextVisible(False)
- # Connect link quality feedback
+ # Connect radio link statistics callbacks
self.cf.link_quality_updated.add_callback(self.linkQualitySignal.emit)
+ self.cf.link_statistics.latency.latency_updated.add_callback(self.latencySignal.emit)
+ self.cf.uplink_rssi_updated.add_callback(self.uplinkRSSISignal.emit)
+ self.cf.uplink_rate_updated.add_callback(self.uplinkRateSignal.emit)
+ self.cf.downlink_rate_updated.add_callback(self.downlinkRateSignal.emit)
+ self.cf.uplink_congestion_updated.add_callback(self.uplinkCongestionSignal.emit)
+ self.cf.downlink_congestion_updated.add_callback(self.downlinkCongestionSignal.emit)
+
self.linkQualitySignal.connect(
- lambda percentage: self.linkQualityBar.setValue(int(percentage)))
+ lambda percentage: self.linkQualityBar.setValue(int(percentage))
+ )
+ self.latencySignal.connect(
+ lambda latency: self.latencyLineEdit.setText(f"{int(latency)} ms")
+ )
+ self.uplinkRSSISignal.connect(
+ lambda rssi: self.uplinkRSSILineEdit.setText(f"-{int(rssi)} dBm")
+ )
+ self.uplinkRateSignal.connect(
+ lambda rate: self.uplinkRateLineEdit.setText(f"{int(rate)} p/s")
+ )
+ self.downlinkRateSignal.connect(
+ lambda rate: self.downlinkRateLineEdit.setText(f"{int(rate)} p/s")
+ )
+ self.uplinkCongestionSignal.connect(
+ lambda congestion: self.uplinkCongestionBar.setValue(int(congestion*100))
+ )
+ self.downlinkCongestionSignal.connect(
+ lambda congestion: self.downlinkCongestionBar.setValue(int(congestion*100))
+ )
# Parse the log configuration files
self.logConfigReader = LogConfigReader(self.cf)
diff --git a/src/cfclient/ui/main.ui b/src/cfclient/ui/main.ui
index 19e2f3b0..2b425dea 100644
--- a/src/cfclient/ui/main.ui
+++ b/src/cfclient/ui/main.ui
@@ -6,8 +6,8 @@
0
0
- 1354
- 592
+ 1634
+ 771
@@ -22,28 +22,8 @@
-
-
-
-
-
- Battery:
-
-
-
- -
-
-
-
- 50
- 0
-
-
-
- Scan
-
-
-
- -
-
+
-
+
30
@@ -56,21 +36,30 @@
16777215
+
+ 3400
+
- 100
+ 4180
- 0
+ 3800
true
+
+ false
+
+
+ QProgressBar::TopToBottom
+
- Link quality %p%
+ Battery %v mV
- -
+
-
@@ -89,92 +78,97 @@
- -
-
-
- volts
+
-
+
+
+
+ 2
+ 0
+
-
-
- -
-
- 80
+ 160
0
-
-
+
+
+ 250
+ 16777215
+
-
- Connect
+
+ false
- -
-
-
+
-
+
+
+ Qt::Horizontal
+
+
- 30
- 0
+ 40
+ 20
-
+
+
+ -
+
+
- 100
- 16777215
+ 80
+ 0
-
- 3400
-
-
- 4180
-
-
- 3800
-
-
- true
-
-
- false
+
+
-
- QProgressBar::TopToBottom
+
+ Connect
-
- Battery %v mV
+
+
+ -
+
+
+ -
+
+
+ Battery:
- -
-
-
-
- 2
- 0
-
+
-
+
+
+ Qt::Horizontal
-
+
- 160
- 0
+ 40
+ 20
-
+
+
+ -
+
+
- 250
- 16777215
+ 50
+ 0
-
- false
+
+ Scan
- -
+
-
true
@@ -205,38 +199,235 @@
- -
-
+
-
+
- Link Quality:
+ volts
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
+
-
+
+
-
+
+
+
+ 30
+ 30
+
+
+
+
+ 100
+ 40
+
+
+
+ 0
+
+
+
+ -
+
+
+
+ 70
+ 0
+
+
+
+
+ 70
+ 16777215
+
+
+
+ Downlink
+
+
+
+ -
+
+
+ Link statistics
+
+
+
+ -
+
+
+ Pckt. Rate
+
+
+
+ -
+
+
+
+ 70
+ 0
+
+
+
+
+ 70
+ 16777215
+
+
+
+ Uplink
+
+
+
+ -
+
+
+ true
+
+
+
+ 30
+ 0
+
+
+
+
+ 100
+ 16777215
+
+
+
+ 100
+
+
+ 0
+
+
+ true
+
+
+ Link quality %p%
+
+
+
+ -
+
+
+ RSSI
+
+
+
+ -
+
+
+
+ 30
+ 30
+
+
+
+
+ 100
+ 40
+
+
+
+ 0
+
+
+
+ -
+
+
+ Congestion
+
+
+
+ -
+
+
+
+ 70
+ 30
+
+
+
+
+ 70
+ 40
+
+
+
+
+ -
+
+
+
+ 70
+ 30
+
+
+
+
+ 70
+ 40
+
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+
+ true
+
+
+
+ -
+
+
+
+ 70
+ 30
+
+
+
+
+ 70
+ 40
+
+
+
+
+ -
+
+
+ Link quality
+
+
+
+ -
+
+
+ Latency
+
+
+
+ -
+
+
+
+ 70
+ 30
+
+
+
+
+ 70
+ 40
+
+
+
+
+
@@ -307,8 +498,8 @@
0
0
- 1334
- 414
+ 1614
+ 545
@@ -359,8 +550,8 @@
0
0
- 1354
- 22
+ 1634
+ 23