""" 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 leMessageID: QtWidgets.QLineEdit btnAccept: QtWidgets.QPushButton btnReject: QtWidgets.QPushButton lblAction: QtWidgets.QLabel spnReason: 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 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.leMessageID = self.find_line_edit('leMessageID') 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.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') 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) 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 @Slot() def do_accept(self): """ the slot for accept button :return: none """ message_id = self.leMessageID.text() self._make_parameters_payload() self.hd_simulator.cmd_send_general_response(int(message_id), True, 0, self.rbHD.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.leMessageID.text() reason = self.spnReason.value() self._make_parameters_payload() self.hd_simulator.cmd_send_general_response(int(message_id), False, reason, self.rbHD.isChecked(), self.parameters_payload_len > 0, self.parameters_payload) self.lblAction.setText('Rejected ' + "{}".format(reason))