""" The ui loader class """ # Python import os # Qt from PySide2 import QtWidgets from PySide2.QtCore import Slot # parent from simulator.dynamicloader import DynamicLoader # hd Simulator from simulator.interface import SimulationInterface from dialin.utils.conversions import integer_to_bytearray, float_to_bytearray # plugin specific # -- None -- class Loader(DynamicLoader): """ The ui loader class """ rbHD: QtWidgets.QRadioButton rbDG: QtWidgets.QRadioButton chkData: QtWidgets.QCheckBox spnMessageID: QtWidgets.QSpinBox btnAccept: QtWidgets.QPushButton btnReject: QtWidgets.QPushButton lblAction: QtWidgets.QLabel spnReason: QtWidgets.QSpinBox btnAcknow: QtWidgets.QPushButton spnSequence: QtWidgets.QSpinBox spnP0: QtWidgets.QSpinBox spnP1: QtWidgets.QSpinBox spnP2: QtWidgets.QSpinBox spnP3: QtWidgets.QSpinBox spnP4: QtWidgets.QSpinBox spnP5: QtWidgets.QSpinBox spnP6: QtWidgets.QSpinBox spnP7: QtWidgets.QSpinBox spnP8: QtWidgets.QSpinBox spnP9: QtWidgets.QSpinBox chkP0: QtWidgets.QCheckBox chkP1: QtWidgets.QCheckBox chkP2: QtWidgets.QCheckBox chkP3: QtWidgets.QCheckBox chkP4: QtWidgets.QCheckBox chkP5: QtWidgets.QCheckBox chkP6: QtWidgets.QCheckBox chkP7: QtWidgets.QCheckBox chkP8: QtWidgets.QCheckBox chkP9: QtWidgets.QCheckBox chkF0: QtWidgets.QCheckBox chkF1: QtWidgets.QCheckBox chkF2: QtWidgets.QCheckBox chkF3: QtWidgets.QCheckBox chkF4: QtWidgets.QCheckBox chkF5: QtWidgets.QCheckBox chkF6: QtWidgets.QCheckBox chkF7: QtWidgets.QCheckBox chkF8: QtWidgets.QCheckBox chkF9: QtWidgets.QCheckBox spnP10: QtWidgets.QSpinBox spnP11: QtWidgets.QSpinBox spnP12: QtWidgets.QSpinBox spnP13: QtWidgets.QSpinBox spnP14: QtWidgets.QSpinBox spnP15: QtWidgets.QSpinBox spnP16: QtWidgets.QSpinBox spnP17: QtWidgets.QSpinBox spnP18: QtWidgets.QSpinBox spnP19: QtWidgets.QSpinBox chkP10: QtWidgets.QCheckBox chkP11: QtWidgets.QCheckBox chkP12: QtWidgets.QCheckBox chkP13: QtWidgets.QCheckBox chkP14: QtWidgets.QCheckBox chkP15: QtWidgets.QCheckBox chkP16: QtWidgets.QCheckBox chkP17: QtWidgets.QCheckBox chkP18: QtWidgets.QCheckBox chkP19: QtWidgets.QCheckBox chkF10: QtWidgets.QCheckBox chkF11: QtWidgets.QCheckBox chkF12: QtWidgets.QCheckBox chkF13: QtWidgets.QCheckBox chkF14: QtWidgets.QCheckBox chkF15: QtWidgets.QCheckBox chkF16: QtWidgets.QCheckBox chkF17: QtWidgets.QCheckBox chkF18: QtWidgets.QCheckBox chkF19: QtWidgets.QCheckBox spnP20: QtWidgets.QSpinBox spnP21: QtWidgets.QSpinBox spnP22: QtWidgets.QSpinBox spnP23: QtWidgets.QSpinBox spnP24: QtWidgets.QSpinBox spnP25: QtWidgets.QSpinBox spnP26: QtWidgets.QSpinBox spnP27: QtWidgets.QSpinBox spnP28: QtWidgets.QSpinBox spnP29: QtWidgets.QSpinBox chkP20: QtWidgets.QCheckBox chkP21: QtWidgets.QCheckBox chkP22: QtWidgets.QCheckBox chkP23: QtWidgets.QCheckBox chkP24: QtWidgets.QCheckBox chkP25: QtWidgets.QCheckBox chkP26: QtWidgets.QCheckBox chkP27: QtWidgets.QCheckBox chkP28: QtWidgets.QCheckBox chkP29: QtWidgets.QCheckBox chkF20: QtWidgets.QCheckBox chkF21: QtWidgets.QCheckBox chkF22: QtWidgets.QCheckBox chkF23: QtWidgets.QCheckBox chkF24: QtWidgets.QCheckBox chkF25: QtWidgets.QCheckBox chkF26: QtWidgets.QCheckBox chkF27: QtWidgets.QCheckBox chkF28: QtWidgets.QCheckBox chkF29: QtWidgets.QCheckBox spnP30: QtWidgets.QSpinBox spnP31: QtWidgets.QSpinBox spnP32: QtWidgets.QSpinBox spnP33: QtWidgets.QSpinBox spnP34: QtWidgets.QSpinBox spnP35: QtWidgets.QSpinBox spnP36: QtWidgets.QSpinBox spnP37: QtWidgets.QSpinBox spnP38: QtWidgets.QSpinBox spnP39: QtWidgets.QSpinBox chkP30: QtWidgets.QCheckBox chkP31: QtWidgets.QCheckBox chkP32: QtWidgets.QCheckBox chkP33: QtWidgets.QCheckBox chkP34: QtWidgets.QCheckBox chkP35: QtWidgets.QCheckBox chkP36: QtWidgets.QCheckBox chkP37: QtWidgets.QCheckBox chkP38: QtWidgets.QCheckBox chkP39: QtWidgets.QCheckBox chkF30: QtWidgets.QCheckBox chkF31: QtWidgets.QCheckBox chkF32: QtWidgets.QCheckBox chkF33: QtWidgets.QCheckBox chkF34: QtWidgets.QCheckBox chkF35: QtWidgets.QCheckBox chkF36: QtWidgets.QCheckBox chkF37: QtWidgets.QCheckBox chkF38: QtWidgets.QCheckBox chkF39: QtWidgets.QCheckBox def __init__(self, interface: SimulationInterface): super().__init__(os.path.dirname(__file__), interface) def _init_loader(self): """ finds and creates widgets :return: none """ self.rbHD = self.find_radio_button('rbHD') self.rbDG = self.find_radio_button('rbDG') self.chkData = self.find_checkbox('chkData') self.spnMessageID = self.find_spinbox('spnMessageID') self.btnAccept = self.find_button('btnAccept') self.btnReject = self.find_button('btnReject') self.lblAction = self.find_label('lblAction') self.spnReason = self.find_spinbox('spnReason') self.btnAcknow = self.find_button('btnAcknow') self.spnSequence = self.find_spinbox('spnSequence') self.spnP0 = self.find_spinbox('spnP0') self.spnP1 = self.find_spinbox('spnP1') self.spnP2 = self.find_spinbox('spnP2') self.spnP3 = self.find_spinbox('spnP3') self.spnP4 = self.find_spinbox('spnP4') self.spnP5 = self.find_spinbox('spnP5') self.spnP6 = self.find_spinbox('spnP6') self.spnP7 = self.find_spinbox('spnP7') self.spnP8 = self.find_spinbox('spnP8') self.spnP9 = self.find_spinbox('spnP9') self.chkP0 = self.find_checkbox('chkP0') self.chkP1 = self.find_checkbox('chkP1') self.chkP2 = self.find_checkbox('chkP2') self.chkP3 = self.find_checkbox('chkP3') self.chkP4 = self.find_checkbox('chkP4') self.chkP5 = self.find_checkbox('chkP5') self.chkP6 = self.find_checkbox('chkP6') self.chkP7 = self.find_checkbox('chkP7') self.chkP8 = self.find_checkbox('chkP8') self.chkP9 = self.find_checkbox('chkP9') self.chkF0 = self.find_checkbox('chkF0') self.chkF1 = self.find_checkbox('chkF1') self.chkF2 = self.find_checkbox('chkF2') self.chkF3 = self.find_checkbox('chkF3') self.chkF4 = self.find_checkbox('chkF4') self.chkF5 = self.find_checkbox('chkF5') self.chkF6 = self.find_checkbox('chkF6') self.chkF7 = self.find_checkbox('chkF7') self.chkF8 = self.find_checkbox('chkF8') self.chkF9 = self.find_checkbox('chkF9') self.spnP10 = self.find_spinbox('spnP10') self.spnP11 = self.find_spinbox('spnP11') self.spnP12 = self.find_spinbox('spnP12') self.spnP13 = self.find_spinbox('spnP13') self.spnP14 = self.find_spinbox('spnP14') self.spnP15 = self.find_spinbox('spnP15') self.spnP16 = self.find_spinbox('spnP16') self.spnP17 = self.find_spinbox('spnP17') self.spnP18 = self.find_spinbox('spnP18') self.spnP19 = self.find_spinbox('spnP19') self.chkP10 = self.find_checkbox('chkP10') self.chkP11 = self.find_checkbox('chkP11') self.chkP12 = self.find_checkbox('chkP12') self.chkP13 = self.find_checkbox('chkP13') self.chkP14 = self.find_checkbox('chkP14') self.chkP15 = self.find_checkbox('chkP15') self.chkP16 = self.find_checkbox('chkP16') self.chkP17 = self.find_checkbox('chkP17') self.chkP18 = self.find_checkbox('chkP18') self.chkP19 = self.find_checkbox('chkP19') self.chkF10 = self.find_checkbox('chkF10') self.chkF11 = self.find_checkbox('chkF11') self.chkF12 = self.find_checkbox('chkF12') self.chkF13 = self.find_checkbox('chkF13') self.chkF14 = self.find_checkbox('chkF14') self.chkF15 = self.find_checkbox('chkF15') self.chkF16 = self.find_checkbox('chkF16') self.chkF17 = self.find_checkbox('chkF17') self.chkF18 = self.find_checkbox('chkF18') self.chkF19 = self.find_checkbox('chkF19') self.spnP20 = self.find_spinbox('spnP20') self.spnP21 = self.find_spinbox('spnP21') self.spnP22 = self.find_spinbox('spnP22') self.spnP23 = self.find_spinbox('spnP23') self.spnP24 = self.find_spinbox('spnP24') self.spnP25 = self.find_spinbox('spnP25') self.spnP26 = self.find_spinbox('spnP26') self.spnP27 = self.find_spinbox('spnP27') self.spnP28 = self.find_spinbox('spnP28') self.spnP29 = self.find_spinbox('spnP29') self.chkP20 = self.find_checkbox('chkP20') self.chkP21 = self.find_checkbox('chkP21') self.chkP22 = self.find_checkbox('chkP22') self.chkP23 = self.find_checkbox('chkP23') self.chkP24 = self.find_checkbox('chkP24') self.chkP25 = self.find_checkbox('chkP25') self.chkP26 = self.find_checkbox('chkP26') self.chkP27 = self.find_checkbox('chkP27') self.chkP28 = self.find_checkbox('chkP28') self.chkP29 = self.find_checkbox('chkP29') self.chkF20 = self.find_checkbox('chkF20') self.chkF21 = self.find_checkbox('chkF21') self.chkF22 = self.find_checkbox('chkF22') self.chkF23 = self.find_checkbox('chkF23') self.chkF24 = self.find_checkbox('chkF24') self.chkF25 = self.find_checkbox('chkF25') self.chkF26 = self.find_checkbox('chkF26') self.chkF27 = self.find_checkbox('chkF27') self.chkF28 = self.find_checkbox('chkF28') self.chkF29 = self.find_checkbox('chkF29') self.spnP30 = self.find_spinbox('spnP30') self.spnP31 = self.find_spinbox('spnP31') self.spnP32 = self.find_spinbox('spnP32') self.spnP33 = self.find_spinbox('spnP33') self.spnP34 = self.find_spinbox('spnP34') self.spnP35 = self.find_spinbox('spnP35') self.spnP36 = self.find_spinbox('spnP36') self.spnP37 = self.find_spinbox('spnP37') self.spnP38 = self.find_spinbox('spnP38') self.spnP39 = self.find_spinbox('spnP39') self.chkP30 = self.find_checkbox('chkP30') self.chkP31 = self.find_checkbox('chkP31') self.chkP32 = self.find_checkbox('chkP32') self.chkP33 = self.find_checkbox('chkP33') self.chkP34 = self.find_checkbox('chkP34') self.chkP35 = self.find_checkbox('chkP35') self.chkP36 = self.find_checkbox('chkP36') self.chkP37 = self.find_checkbox('chkP37') self.chkP38 = self.find_checkbox('chkP38') self.chkP39 = self.find_checkbox('chkP39') self.chkF30 = self.find_checkbox('chkF30') self.chkF31 = self.find_checkbox('chkF31') self.chkF32 = self.find_checkbox('chkF32') self.chkF33 = self.find_checkbox('chkF33') self.chkF34 = self.find_checkbox('chkF34') self.chkF35 = self.find_checkbox('chkF35') self.chkF36 = self.find_checkbox('chkF36') self.chkF37 = self.find_checkbox('chkF37') self.chkF38 = self.find_checkbox('chkF38') self.chkF39 = self.find_checkbox('chkF39') def _init_widgets(self): """ initializes the widgets' properties :return: none """ pass def _init_connections(self): """ initializes the widgets connections :return: """ self.btnAccept.clicked.connect(self.do_accept) self.btnReject.clicked.connect(self.do_reject) self.btnAcknow.clicked.connect(self.do_acknow) def _make_parameters_payload(self): self.parameters_payload_len = 0 self.parameters_payload = 0x00 if self.chkP0.isChecked(): if self.chkF0.isChecked(): self.parameters_payload = float_to_bytearray(self.spnP0.value()) else: self.parameters_payload = integer_to_bytearray(self.spnP0.value()) self.parameters_payload_len = 1 if self.chkP1.isChecked(): if self.chkF1.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP1.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP1.value()) self.parameters_payload_len = 2 if self.chkP2.isChecked(): if self.chkF2.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP2.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP2.value()) self.parameters_payload_len = 3 if self.chkP3.isChecked(): if self.chkF3.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP3.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP3.value()) self.parameters_payload_len = 4 if self.chkP4.isChecked(): if self.chkF4.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP4.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP4.value()) self.parameters_payload_len = 5 if self.chkP5.isChecked(): if self.chkF5.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP5.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP5.value()) self.parameters_payload_len = 6 if self.chkP6.isChecked(): if self.chkF6.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP6.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP6.value()) self.parameters_payload_len = 7 if self.chkP7.isChecked(): if self.chkF7.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP7.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP7.value()) self.parameters_payload_len = 8 if self.chkP8.isChecked(): if self.chkF8.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP8.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP8.value()) self.parameters_payload_len = 9 if self.chkP9.isChecked(): if self.chkF9.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP9.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP9.value()) self.parameters_payload_len = 10 if self.chkP10.isChecked(): if self.chkF10.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP10.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP10.value()) self.parameters_payload_len = 11 if self.chkP11.isChecked(): if self.chkF11.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP11.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP11.value()) self.parameters_payload_len = 12 if self.chkP12.isChecked(): if self.chkF12.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP12.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP12.value()) self.parameters_payload_len = 13 if self.chkP13.isChecked(): if self.chkF13.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP13.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP13.value()) self.parameters_payload_len = 14 if self.chkP14.isChecked(): if self.chkF14.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP14.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP14.value()) self.parameters_payload_len = 15 if self.chkP15.isChecked(): if self.chkF15.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP15.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP15.value()) self.parameters_payload_len = 16 if self.chkP16.isChecked(): if self.chkF16.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP16.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP16.value()) self.parameters_payload_len = 17 if self.chkP17.isChecked(): if self.chkF17.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP17.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP17.value()) self.parameters_payload_len = 18 if self.chkP18.isChecked(): if self.chkF18.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP18.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP18.value()) self.parameters_payload_len = 19 if self.chkP19.isChecked(): if self.chkF19.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP19.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP19.value()) self.parameters_payload_len = 20 if self.chkP20.isChecked(): if self.chkF20.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP20.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP20.value()) self.parameters_payload_len = 21 if self.chkP21.isChecked(): if self.chkF21.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP21.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP21.value()) self.parameters_payload_len = 22 if self.chkP22.isChecked(): if self.chkF22.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP22.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP22.value()) self.parameters_payload_len = 23 if self.chkP23.isChecked(): if self.chkF23.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP23.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP23.value()) self.parameters_payload_len = 24 if self.chkP24.isChecked(): if self.chkF24.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP24.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP24.value()) self.parameters_payload_len = 25 if self.chkP25.isChecked(): if self.chkF25.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP25.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP25.value()) self.parameters_payload_len = 26 if self.chkP26.isChecked(): if self.chkF26.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP26.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP26.value()) self.parameters_payload_len = 27 if self.chkP27.isChecked(): if self.chkF27.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP27.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP27.value()) self.parameters_payload_len = 28 if self.chkP28.isChecked(): if self.chkF28.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP28.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP28.value()) self.parameters_payload_len = 29 if self.chkP29.isChecked(): if self.chkF29.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP29.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP29.value()) self.parameters_payload_len = 30 if self.chkP30.isChecked(): if self.chkF30.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP30.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP30.value()) self.parameters_payload_len = 31 if self.chkP31.isChecked(): if self.chkF31.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP31.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP31.value()) self.parameters_payload_len = 32 if self.chkP32.isChecked(): if self.chkF32.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP32.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP32.value()) self.parameters_payload_len = 33 if self.chkP33.isChecked(): if self.chkF33.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP33.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP33.value()) self.parameters_payload_len = 34 if self.chkP34.isChecked(): if self.chkF34.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP34.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP34.value()) self.parameters_payload_len = 35 if self.chkP35.isChecked(): if self.chkF35.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP35.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP35.value()) self.parameters_payload_len = 36 if self.chkP36.isChecked(): if self.chkF36.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP36.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP36.value()) self.parameters_payload_len = 37 if self.chkP37.isChecked(): if self.chkF37.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP37.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP37.value()) self.parameters_payload_len = 38 if self.chkP38.isChecked(): if self.chkF38.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP38.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP38.value()) self.parameters_payload_len = 39 if self.chkP39.isChecked(): if self.chkF39.isChecked(): self.parameters_payload += float_to_bytearray(self.spnP39.value()) else: self.parameters_payload += integer_to_bytearray(self.spnP39.value()) self.parameters_payload_len = 40 @Slot() def do_accept(self): """ the slot for accept button :return: none """ message_id = self.spnMessageID.text() self._make_parameters_payload() if self.rbHD.isChecked(): self.interface.hd.cmd_send_hd_general_response(int(message_id), True, 0, self.chkData.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) else: self.interface.dg.cmd_send_dg_general_response(int(message_id), True, 0, self.chkData.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) self.lblAction.setText('Accepted ') @Slot() def do_reject(self): """ the slot for reject button :return: none """ message_id = self.spnMessageID.text() reason = self.spnReason.value() self._make_parameters_payload() if self.rbHD.isChecked(): self.interface.hd.cmd_send_hd_general_response(int(message_id), False, reason, self.chkData.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) else: self.interface.dg.cmd_send_dg_general_response(int(message_id), False, reason, self.chkData.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) self.lblAction.setText('Rejected ' + "{}".format(reason)) @Slot() def do_acknow(self): """ sends the message acknowledge by the sequence number spnSequence :return: None """ seq = self.spnSequence.value() if self.rbHD.isChecked(): self.interface.hd.cmd_send_hd_ack(seq) else: self.interface.dg.cmd_send_dg_ack(seq)