Preview of selfchecheck results on double click

This commit is contained in:
Artem30801
2019-10-16 19:33:02 +03:00
parent 3e23532d48
commit 327f7547a3
3 changed files with 35 additions and 4 deletions

View File

@@ -69,7 +69,7 @@ def check(check_name):
failures = f(*args, **kwargs)
msgs = []
for failure in failures:
msg = "[{}]: Failure: {}".format(check_name, failure)
msg = "[{}]: Err: {}".format(check_name, failure)
msgs.append(msg)
logger.warning(msg)

View File

@@ -399,7 +399,16 @@ if __name__ == '__main__':
tableView.setSortingEnabled(True)
tableView.show()
myModel.add_client(StatedCopterData(copter_id=1000, checked=0, time_utc=1))
msgs = []
msg = "[{}]: Failure: {}".format("FCU connection", "Angular velocities estimation is not available")
msgs.append(msg)
msg = "[{}]: Failure: {}".format("FCU connection1", "Angular velocities estimation is not available")
msgs.append(msg)
msg = "[{}]: Failure: {}".format("FCU connection2", "Angular velocities estimation is not available")
msgs.append(msg)
myModel.add_client(StatedCopterData(copter_id=1000, checked=0, selfcheck=msgs, time_utc=1))
myModel.add_client(StatedCopterData(checked=2, selfcheck="OK", time_utc=2))
myModel.add_client(StatedCopterData(checked=2, selfcheck="not ok", time_utc="no"))

View File

@@ -83,12 +83,13 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.tableView.setModel(self.proxy_model)
self.ui.tableView.resizeColumnsToContents()
self.ui.tableView.doubleClicked.connect(self.selfcheck_info_dialog)
# Connect signals to manipulate model from threads
self.signals.update_data_signal.connect(self.model.update_item)
self.signals.add_client_signal.connect(self.model.add_client)
self.signals.remove_client_signal.connect(self.model.remove_client)
# Connect model signals to UI
self.model.selected_ready_signal.connect(self.ui.start_button.setEnabled)
self.model.selected_takeoff_ready_signal.connect(self.ui.takeoff_button.setEnabled)
@@ -195,7 +196,7 @@ class MainWindow(QtWidgets.QMainWindow):
elif col == 5:
data = str(value)
elif col == 6:
data = str(value)
data = value
elif col == 7:
data = str(value)
elif col == 8:
@@ -219,6 +220,27 @@ class MainWindow(QtWidgets.QMainWindow):
self.signals.update_data_signal.emit(row, col, value, ModelDataRole)
self.signals.update_data_signal.emit(row, col, True, ModelStateRole)
@pyqtSlot(QtCore.QModelIndex)
def selfcheck_info_dialog(self, index):
col = index.column()
if col == 6:
data = self.proxy_model.data(index, role=ModelDataRole)
if data and data != "OK":
dialog = QMessageBox()
dialog.setIcon(QMessageBox.NoIcon)
dialog.setStandardButtons(QMessageBox.Ok)
dialog.setWindowTitle("Selfcheck info")
dialog.setText("\n".join(data[:10]))
dialog.setDetailedText("\n".join(data))
dialog.exec()
def _selfcheck_shortener(self, data):
shortened = []
for line in data:
if len(line) > 89:
pass
return shortened
@pyqtSlot()
def remove_selected(self):
for copter in self.model.user_selected():