diff --git a/src/unitdev01/unitdev01/gui.py b/src/unitdev01/unitdev01/gui.py index e6e4d64..6ff9a2c 100644 --- a/src/unitdev01/unitdev01/gui.py +++ b/src/unitdev01/unitdev01/gui.py @@ -38,6 +38,9 @@ class DroneMonitor(Node): self.selected_drones = set() self.latest_data = {} + # 定義需要過濾的模式 + self.filtered_modes = ['Mode(0x000000c0)'] + # 啟動 WebSocket client 執行緒 threading.Thread(target=self.start_ws_client, daemon=True).start() @@ -310,6 +313,9 @@ class DroneMonitor(Node): } def state_callback(self, drone_id, msg): + mode = msg.mode + if mode in self.filtered_modes: + return self.latest_data[(drone_id, 'state')] = { 'mode': msg.mode, 'armed': msg.armed @@ -1181,9 +1187,10 @@ class ControlStationUI(QMainWindow): # 顯示總電壓、電池節數、單節電壓和百分比 text = f"{percentage:.0f}%" + vol = f"{voltage:.2f}V" self.update_field(panel, drone_id, 'battery', text, voltage_color) - self.update_overview_table(drone_id, 'battery', text) + self.update_overview_table(drone_id, 'battery', vol) elif msg_type == 'gps': lat, lon = data.get('lat', 0), data.get('lon', 0)