Index: simulator/plugins/alarms/loader.py =================================================================== diff -u -rd0b375c0743a71e5fb0e3211ad15cc9404e5aa5d -r80e41aa60d1fe7534b4c082f087f708afb89c38d --- simulator/plugins/alarms/loader.py (.../loader.py) (revision d0b375c0743a71e5fb0e3211ad15cc9404e5aa5d) +++ simulator/plugins/alarms/loader.py (.../loader.py) (revision 80e41aa60d1fe7534b4c082f087f708afb89c38d) @@ -6,11 +6,11 @@ from datetime import datetime # Qt from PySide2 import QtWidgets -from PySide2.QtCore import Slot, QObject, Qt +from PySide2.QtCore import Slot, QTimer, Qt # parent from simulator.dynamicloader import DynamicLoader # hd Simulator -from dialin.ui.hd_simulator import HDSimulator +from simulator.interface import SimulationInterface # plugin specific from dialin.common.prs_defs import AlarmPriority @@ -21,6 +21,7 @@ """ canMaximize = True + timer: QTimer btnTrigger: QtWidgets.QPushButton btnClear: QtWidgets.QPushButton @@ -95,9 +96,8 @@ AlarmPriority.ALARM_HIGH: 'rgb(239, 41, 41)' } - def __init__(self, hd_simulator: HDSimulator): - super().__init__(os.path.dirname(__file__), hd_simulator) - self.alarm = hd_simulator.alarm() + def __init__(self, interface: SimulationInterface): + super().__init__(os.path.dirname(__file__), interface) def _init_loader(self): """ @@ -146,6 +146,9 @@ initializes the widgets' properties :return: none """ + self.timer = QTimer() + self.timer.start(1000) + self.__populate_status_ids_columns() self.rdoPriorityNone.setStyleSheet('background-color: {};'.format(self.styles[AlarmPriority.ALARM_NONE])) self.rdoPriorityLow.setStyleSheet('background-color: {};'.format(self.styles[AlarmPriority.ALARM_LOW])) @@ -160,6 +163,8 @@ initializes the widgets connections :return: """ + self.timer.timeout.connect(self.do_timer_timeout) + self.btnTrigger.clicked.connect(self.do_trigger) self.btnClear.clicked.connect(self.do_clear) self.btnCondition.clicked.connect(self.do_clear_condition) @@ -172,7 +177,6 @@ self.rdoPriorityLow.toggled.connect(self.do_set_priority_low) self.rdoPriorityMed.toggled.connect(self.do_set_priority_med) self.rdoPriorityHigh.toggled.connect(self.do_set_priority_high) - self.btnAccept.clicked.connect(self.do_active_list_accept) self.btnReject.clicked.connect(self.do_active_list_reject) @@ -195,6 +199,14 @@ self.flags &= ~bit @Slot() + def do_timer_timeout(self) -> None: + """ + one second timer to send the alarm status at all the time like what FW does but in lower frequency + :return: None + """ + # self.do_send() + + @Slot() def do_set_priority_none(self): """ the slot for priority buttons @@ -237,7 +249,7 @@ mute_out = self.spnMuteTimeout.value() if alarm_id >= 0: self.set_flags() - self.alarm.cmd_activate_alarm_id( + self.interface.alarm.cmd_activate_alarm_id( self.priority, alarm_id, escalate, @@ -263,9 +275,10 @@ data_field_2 = "0" if alarm_id: - self.alarm.cmd_set_alarm_triggered(alarm_id, - field_descriptor_1, data_field_1, - field_descriptor_2, data_field_2) + self.interface.alarm.cmd_set_alarm_triggered( + alarm_id, + field_descriptor_1, data_field_1, + field_descriptor_2, data_field_2) self.__append_triggered_row(alarm_id) @Slot() @@ -275,7 +288,7 @@ :return: none """ [alarm_id, row] = self.alarm_id() - self.alarm.cmd_set_alarm_cleared(alarm_id) + self.interface.alarm.cmd_set_alarm_cleared(alarm_id) self.tblTriggeredIDs.removeRow(row) @Slot() @@ -285,7 +298,7 @@ :return: none """ [alarm_id, row] = self.alarm_id() - self.alarm.cmd_set_alarm_cleared_condition(alarm_id) + self.interface.alarm.cmd_set_alarm_cleared_condition(alarm_id) self.tblTriggeredIDs.item(row, self.eColID).setBackground(self.colors[AlarmPriority.ALARM_NONE]) self.tblTriggeredIDs.item(row, self.eColID).setSelected(False) @@ -318,7 +331,7 @@ a7 = self.spnP7.value() a8 = self.spnP8.value() a9 = self.spnP9.value() - self.alarm.cmd_send_active_list_response(True, 0, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) + self.interface.alarm.cmd_send_active_list_response(True, 0, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) @Slot() def do_active_list_reject(self): @@ -327,7 +340,7 @@ :return: none """ reason = self.spnReason.value() - self.alarm.cmd_send_active_list_response(False, reason) + self.interface.alarm.cmd_send_active_list_response(False, reason) @Slot() def on_status_ids_item_clicked(self, item: QtWidgets.QTableWidgetItem):