gui: display warning msg if recv-ed

This commit is contained in:
linuswck 2025-01-23 11:06:14 +08:00
parent 7bdb7e48df
commit 3affe47293

View File

@ -76,6 +76,7 @@ class Kirdy(QObject):
setting_update_sig = pyqtSignal(dict)
report_update_sig = pyqtSignal(dict)
cmd_fail_sig = pyqtSignal(str)
cmd_warning_sig = pyqtSignal(str)
def __init__(self, parent, kirdy, _poll_interval):
super().__init__(parent)
@ -88,6 +89,7 @@ class Kirdy(QObject):
self._noti_info_box.setIcon(QtWidgets.QMessageBox.Icon.Information)
self._kirdy.set_err_msg_sig(self.cmd_fail_sig)
self._kirdy.set_warning_msg_sig(self.cmd_warning_sig)
self._poll_report_timer = QtCore.QTimer()
self._poll_report_timer.timeout.connect(self.polling_event)
@ -576,7 +578,8 @@ class MainWindow(QtWidgets.QMainWindow):
self.kirdy_handler.setting_update_sig.connect(self.update_thermostat_ctrl_panel_settings)
self.kirdy_handler.report_update_sig.connect(self.update_ld_ctrl_panel_readings)
self.kirdy_handler.report_update_sig.connect(self.update_thermostat_ctrl_panel_readings)
self.kirdy_handler.cmd_fail_sig.connect(self.cmd_cannot_execute)
self.kirdy_handler.cmd_fail_sig.connect(self.show_err_cmd_msg)
self.kirdy_handler.cmd_warning_sig.connect(self.show_warning_cmd_msg)
self.graphs = Graphs(self.ld_i_set_graph, self.pd_mon_pwr_graph, self.tec_i_graph, self.tec_temp_graph, max_samples=self.max_samples)
self.kirdy_handler.report_update_sig.connect(self.graphs.plot_append)
@ -884,11 +887,18 @@ class MainWindow(QtWidgets.QMainWindow):
self.params[1].child('Temperature ADC Filter Settings', 'Configure ADC Filter').sigActivated.connect(show_adc_filter_cfg_form)
@pyqtSlot(str)
def cmd_cannot_execute(self, kirdy_msg):
def show_err_cmd_msg(self, kirdy_msg):
self.info_box.setWindowTitle(" ")
self.info_box.setText(f"Command fails to execute. {kirdy_msg}")
self.info_box.show()
@pyqtSlot(str)
def show_warning_cmd_msg(self, kirdy_msg):
self.info_box.setWindowTitle(" ")
self.info_box.setText(f"Command executed but has warning message. {kirdy_msg}")
self.info_box.show()
@asyncSlot(dict)
async def autotune_tick(self, report):
self.autotuner.run(report['thermostat']['temperature'], report['ts']/1000)