Index: simulator/plugins/GeneralResponseMessage/loader.py =================================================================== diff -u -r26b852b6e979e73cf806699b050401065b5f8fb2 -r7f0678d0f61fa99a35a1f34fac6c36e12ba93f20 --- simulator/plugins/GeneralResponseMessage/loader.py (.../loader.py) (revision 26b852b6e979e73cf806699b050401065b5f8fb2) +++ simulator/plugins/GeneralResponseMessage/loader.py (.../loader.py) (revision 7f0678d0f61fa99a35a1f34fac6c36e12ba93f20) @@ -11,7 +11,8 @@ from simulator.dynamicloader import DynamicLoader # hd Simulator from dialin.ui.hd_simulator import HDSimulator -from dialin.ui.hd_simulator import RequestRejectReasons +from dialin.utils.conversions import integer_to_bytearray, float_to_bytearray + # plugin specific # -- None -- @@ -27,6 +28,36 @@ 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) @@ -43,6 +74,36 @@ 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): """ @@ -59,14 +120,80 @@ 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.hd_simulator.cmd_send_general_response(int(message_id), True, 0, self.rbHD.isChecked()) + 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() @@ -77,5 +204,7 @@ """ message_id = self.leMessageID.text() reason = self.spnReason.value() - self.hd_simulator.cmd_send_general_response(int(message_id), False, reason, self.rbHD.isChecked()) + 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))