Index: simulator/CloudSync_InpBuffer_InterpretErrorTest.py =================================================================== diff -u --- simulator/CloudSync_InpBuffer_InterpretErrorTest.py (revision 0) +++ simulator/CloudSync_InpBuffer_InterpretErrorTest.py (revision 1a350f4565d3e72db7f7f0664f2ad1961a7d1dde) @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +import time +delay = 0.1 # it's not working without a delay. +f = open('2021_12_06_out.buf', 'a') + +f.write('a\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect header [1: 1/5] +f.write('a, b\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect header [1: 2/5] +f.write('a, b, c\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect header [1: 3/5] +f.write('a, b, c, d\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect header [1: 4/5] +f.write('a, b, c, d, e\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect timestamp [2: a] +f.write('1, b, c, d, e\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect sequence [3: b] +f.write('1, 2, c, d, e\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect ID [4: c] +f.write('1, 2, 3, d, e\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect parameter length [5: d] +f.write('1, 2, 3, 4, e\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect CRC [5: d] +f.write('1, 2, 3, 4, 5\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect parameter count [7:0/4] +f.write('1, 2, 3, 4, 5,1\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect parameter count [7:1/4] +f.write('1, 2, 3, 4, 5,1,2\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect parameter count [7:2/4] +f.write('1, 2, 3, 4, 5,1,2,3\n' ); f.flush(); time.sleep(delay) # CloudSync Error Incorrect parameter count [7:3/4] +f.write('1, 2, 3, 4, 5,1,2,3,4\n' ); f.flush(); time.sleep(delay) # OK +f.write('1, 2, 3, 4, 5,,2,,4\n' ); f.flush(); time.sleep(delay) # OK +f.write('1, 2, 3, 4, 5,a,2,c,4\n' ); f.flush(); time.sleep(delay) # OK + +f.write('1, 2, 201, 0, 5\n' ); f.flush(); time.sleep(delay) # OK + +f.close() + Index: simulator/plugins/generalResponseMessage/interface.ui =================================================================== diff -u -r967521dff94783ce48b50abc8db6bcd67bb501bf -r1a350f4565d3e72db7f7f0664f2ad1961a7d1dde --- simulator/plugins/generalResponseMessage/interface.ui (.../interface.ui) (revision 967521dff94783ce48b50abc8db6bcd67bb501bf) +++ simulator/plugins/generalResponseMessage/interface.ui (.../interface.ui) (revision 1a350f4565d3e72db7f7f0664f2ad1961a7d1dde) @@ -7,32 +7,13 @@ 0 0 1198 - 281 + 418 &9 General/&0 Response Message - - - - - 10 - - - - color: rgb(238, 238, 236); -background-color: rgb(46, 52, 54); - - - General Response Message - - - Qt::AlignCenter - - - @@ -188,29 +169,225 @@ - - - - - 0 - 0 - + + + + 2 - - - 10 - + + 0 - - QFrame::StyledPanel - - - QFrame::Plain - - - - - + + + + P20 + + + + + + + P21 + + + + + + + P22 + + + + + + + P23 + + + + + + + P24 + + + + + + + P25 + + + + + + + P26 + + + + + + + P27 + + + + + + + P28 + + + + + + + P29 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + F20 + + + + + + + F21 + + + + + + + F22 + + + + + + + F23 + + + + + + + F24 + + + + + + + F25 + + + + + + + F26 + + + + + + + F27 + + + + + + + F28 + + + + + + + F29 + + + + @@ -652,7 +829,246 @@ - + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(46, 52, 54); + + + General Response Message + + + Qt::AlignCenter + + + + + + + 2 + + + 0 + + + + + P30 + + + + + + + P31 + + + + + + + P32 + + + + + + + P33 + + + + + + + P34 + + + + + + + P35 + + + + + + + P36 + + + + + + + P37 + + + + + + + P38 + + + + + + + P39 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + 2147483647 + + + + + + + F30 + + + + + + + F31 + + + + + + + F32 + + + + + + + F33 + + + + + + + F34 + + + + + + + F35 + + + + + + + F36 + + + + + + + F37 + + + + + + + F38 + + + + + + + F39 + + + + + + Qt::Vertical @@ -665,6 +1081,13 @@ + + + + + + + Index: simulator/plugins/generalResponseMessage/loader.py =================================================================== diff -u -r967521dff94783ce48b50abc8db6bcd67bb501bf -r1a350f4565d3e72db7f7f0664f2ad1961a7d1dde --- simulator/plugins/generalResponseMessage/loader.py (.../loader.py) (revision 967521dff94783ce48b50abc8db6bcd67bb501bf) +++ simulator/plugins/generalResponseMessage/loader.py (.../loader.py) (revision 1a350f4565d3e72db7f7f0664f2ad1961a7d1dde) @@ -96,6 +96,68 @@ 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) @@ -147,6 +209,7 @@ 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') @@ -178,6 +241,68 @@ 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 @@ -259,9 +384,9 @@ self.parameters_payload_len = 10 if self.chkP10.isChecked(): if self.chkF10.isChecked(): - self.parameters_payload = float_to_bytearray(self.spnP10.value()) + self.parameters_payload += float_to_bytearray(self.spnP10.value()) else: - self.parameters_payload = integer_to_bytearray(self.spnP10.value()) + self.parameters_payload += integer_to_bytearray(self.spnP10.value()) self.parameters_payload_len = 11 if self.chkP11.isChecked(): if self.chkF11.isChecked(): @@ -317,6 +442,126 @@ 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):