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):