""" 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 dialin.ui.hd_simulator import HDSimulator 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 def __init__(self, hd_simulator: HDSimulator): super().__init__(os.path.dirname(__file__), hd_simulator) 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') 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 @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.hd_simulator.cmd_send_general_hd_response(int(message_id), True, 0, self.chkData.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) else: self.hd_simulator.cmd_send_general_dg_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.hd_simulator.cmd_send_general_hd_response(int(message_id), False, reason, self.chkData.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) else: self.hd_simulator.cmd_send_general_dg_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.hd_simulator.ack_send_hd(seq) else: self.hd_simulator.ack_send_dg(seq)