mirror of
https://github.com/CopterExpress/clever-show.git
synced 2026-05-26 23:19:33 +00:00
Update table model and signal emitting condition
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user