diff --git a/Server/copter_table_models.py b/Server/copter_table_models.py index d011b76..1b48f36 100644 --- a/Server/copter_table_models.py +++ b/Server/copter_table_models.py @@ -276,7 +276,10 @@ def check_anim(item): def check_bat(item): if not item: return None - return int(item.split(' ')[1][:-1]) > 30 + if item == "NO_INFO": + return False + else: + return float(item.split(' ')[1][:-1]) > 30 @col_check(4) def check_sys_status(item): @@ -294,7 +297,7 @@ def check_cal_status(item): def check_mode(item): if not item: return None - return True + return (item != "NO_FCU") and not ("CMODE" in item) @col_check(7) diff --git a/Server/server_qt.py b/Server/server_qt.py index 370fea7..cbae2b5 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -181,6 +181,10 @@ class MainWindow(QtWidgets.QMainWindow): animation_id = fields[2] battery_v = fields[3] battery_p = fields[4] + if battery_v == 'nan' or battery_p == 'nan': + battery_info = "NO_INFO" + else: + battery_info = "{}V {}%".format(battery_v, battery_p) sys_status = fields[5] cal_status = fields[6] mode = fields[7] @@ -188,17 +192,18 @@ class MainWindow(QtWidgets.QMainWindow): current_pos = fields[9] start_pos = fields[10] copter_time = fields[11] + time_delta = "{}".format(round(float(copter_time) - time.time(), 3)) row = self.model.get_row_index(self.model.get_row_by_attr('copter_id', copter_id)) self.signals.update_data_signal.emit(row, 1, git_version, ModelDataRole) self.signals.update_data_signal.emit(row, 2, animation_id, ModelDataRole) - self.signals.update_data_signal.emit(row, 3, "{}V {}%".format(battery_v, battery_p), ModelDataRole) + self.signals.update_data_signal.emit(row, 3, battery_info, ModelDataRole) self.signals.update_data_signal.emit(row, 4, sys_status, ModelDataRole) self.signals.update_data_signal.emit(row, 5, cal_status, ModelDataRole) self.signals.update_data_signal.emit(row, 6, mode, ModelDataRole) self.signals.update_data_signal.emit(row, 7, selfcheck, ModelDataRole) self.signals.update_data_signal.emit(row, 8, current_pos, ModelDataRole) self.signals.update_data_signal.emit(row, 9, start_pos, ModelDataRole) - self.signals.update_data_signal.emit(row, 10, "{}".format(round(float(copter_time) - time.time(), 3)), ModelDataRole) + self.signals.update_data_signal.emit(row, 10, time_delta, ModelDataRole) @pyqtSlot(QtCore.QModelIndex) def selfcheck_info_dialog(self, index):