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