Update table model and signal emitting condition

This commit is contained in:
Arthur Golubtsov
2019-07-05 14:23:36 +03:00
parent 686cc2f256
commit bfe705f10d
2 changed files with 21 additions and 8 deletions

View File

@@ -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():

View File

@@ -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