From bfe705f10d811d2f33bd94cb53cf79844aed067e Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Fri, 5 Jul 2019 14:23:36 +0300 Subject: [PATCH] Update table model and signal emitting condition --- Server/copter_table_models.py | 21 ++++++++++++++++----- Server/server_qt.py | 8 +++++--- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Server/copter_table_models.py b/Server/copter_table_models.py index 976e0b3..5251ef4 100644 --- a/Server/copter_table_models.py +++ b/Server/copter_table_models.py @@ -31,7 +31,7 @@ class CopterDataModel(QtCore.QAbstractTableModel): def __init__(self, parent=None): super(CopterDataModel, self).__init__(parent) - self.headers = ('copter ID', 'animation ID', 'battery (V.)', 'battery (%)', 'selfcheck', 'time UTC', "time delta") + self.headers = ('copter ID', 'animation ID', 'battery V', 'battery %', 'selfcheck', 'time delta') self.data_contents = [] def insertRows(self, contents, position='last', parent=QtCore.QModelIndex()): @@ -62,6 +62,7 @@ class CopterDataModel(QtCore.QAbstractTableModel): return self.headers[section] def data(self, index, role=Qt.DisplayRole): + self.selected_ready_signal.emit(set(self.user_selected()).issubset(self.selfchecked_ready())) row = index.row() col = index.column() #print('row {}, col {}, role {}'.format(row, col, role)) @@ -94,8 +95,6 @@ class CopterDataModel(QtCore.QAbstractTableModel): if role == Qt.CheckStateRole: self.data_contents[index.row()].checked = value - # check if all selected are selfcheck and ok (ready) - self.selected_ready_signal.emit(set(self.user_selected()).issubset(self.selfchecked_ready())) elif role == Qt.EditRole: self.data_contents[index.row()][index.column()] = value @@ -136,6 +135,8 @@ def col_check(col): def check_anim(item): if not item: return None + if str(item) == 'No animation': + return False else: return True @@ -151,13 +152,14 @@ def check_bat_v(item): @col_check(3) -def check_bat_v(item): +def check_bat_p(item): if not item: return None - if float(item) > 15: # todo config + if float(item) > 30: # todo config return True else: return False + #return True #For testing @col_check(4) @@ -169,6 +171,15 @@ def check_selfcheck(item): else: return False +@col_check(5) +def check_time_delta(item): + if not item: + return None + if abs(float(item)) < 1: + return True + else: + return False + def all_checks(copter_item): for col, check in CopterDataModel.checks.items(): diff --git a/Server/server_qt.py b/Server/server_qt.py index 9d8c5fb..cfe69fa 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -119,9 +119,11 @@ class MainWindow(QtWidgets.QMainWindow): elif col == 4: data = str(value) elif col == 5: - data = time.ctime(int(value)) - data2 = "{}".format(round(int(value) - time.time(), 3)) - self.signals.update_data_signal.emit(row, col + 1, data2) + #data = time.ctime(int(value)) + data = "{}".format(round(float(value) - time.time(), 3)) + if abs(float(data)) > 1: + Client.get_by_id(copter_id).send_message("repair_chrony") + #self.signals.update_data_signal.emit(row, col + 1, data2) else: print("No column matched for response") return