diff --git a/Drone/FlightLib/FlightLib.py b/Drone/FlightLib/FlightLib.py index b7dae37..deae299 100644 --- a/Drone/FlightLib/FlightLib.py +++ b/Drone/FlightLib/FlightLib.py @@ -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) diff --git a/Server/copter_table_models.py b/Server/copter_table_models.py index bffce18..2e26dac 100644 --- a/Server/copter_table_models.py +++ b/Server/copter_table_models.py @@ -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")) diff --git a/Server/server_qt.py b/Server/server_qt.py index 85ac2c1..624591c 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -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():