I'm trying to reverse engineer an old sensor interface program (Draeger Pac III). I have meaningful values as reported on the sensor screen and have identified the raw hex data via serial port sniffer. Now I am trying to figure out the pattern to write some code to receive and transmit the data in real numbers on an arduino.
Edit and update: So far this link to another, much newer, Draeger module has been the only possible link available but does not help explain the meaning behind the counting scheme below.
I'm 100% sure these bytes are the bytes of interest. For example this is the raw data from one value from the readout : 01 02 01 05 b0 00 19 00 d2 01 02 01 1d b0 00 00 43 9d 80 00 00 3e cc cc cd 42 5c 00 00 01 01 01 01 02 00 00 04 02 01 01 05 80
. The first 8 bytes are the command with a checksum in the 9th position. Up to and including the 21st byte there is no change for each value change and I can only assume these correspond to other status components. 3e cc cc cd
some how represents 0.40. 42 5c 00 00
represents 55 (still not sure how). The next section represents on/off for other components and can be changed independently of the two 4 byte data sets representing numbers. The last 2 bytes are the checksum.
Real # Byte 1 Byte 2 Byte 3 Byte 4
0.00 0 0 0 0
0.01 3c 23 d7 0a
0.02 3c a3 d7 0a
0.03 3c f5 c2 8f
0.04 3d 23 d7 0a
0.05 3d 4c cc cd
0.06 3d 75 c2 8f
0.07 3d 8f 5c 29
0.08 3d a3 d7 0a
0.09 3d b8 51 ec
0.10 3d cc cc cd
0.20 3e 4c cc cd
0.30 3e 99 99 9a
0.40 3e cc cc cd
0.50 3f 0 0 0
0.99 3f 7d 70 a4
1.00 3f 80 0 0
1.01 3f 81 47 ae
2.00 40 0 0 0
3.00 40 40 0 0
4.00 40 80 0 0
4.10 40 83 33 33
4.11 40 83 85 1f
5.00 40 a0 0 0
8.14 41 2 3d 71
10.00 41 20 0 0
19.00 41 98 0 0
20.00 41 a0 0 0
21.00 41 a8 0 0
30.00 41 f0 0 0
31.00 41 f8 0 0
31.51 41 fc 14 7b
32.00 42 0 0 0
33.00 42 4 0 0
34.00 42 8 0 0
39.00 42 1c 0 0
40.00 42 20 0 0
41.00 42 24 0 0
65.00 42 82 0 0
70.00 42 8c 0 0
80.00 42 a0 0 0
95.00 42 be 0 0
100.00 42 c8 0 0
What is the pattern to this data?