I’m having an issue with payload length and calculating checksums for IO samples. I’ve set up an XBee Pro 900Mhz DigiMesh module to send periodic I/O samples via escaped API frames. The data packets I receive don’t make any sense to me at all.
Here is a packet with escape characters still in tact;
7E 126
00 0
14 20
92 146
00 0
7D 125
33 51
A2 162
00 0
40 64
47 71
7F 127
DA 218
FF 255
FE 254
01 1
01 1
10 16
11 17
00 0
40 64
21 33
00 0
40 64
3F 63
FF 255
AD 173
Now if I unescape them;
7E 126
00 0
14 20
92 146
00 0
13 19
A2 162
00 0
40 64
47 71
7F 127
DA 218
FF 255
FE 254
01 1
01 1
10 16
11 17
00 0
40 64
21 33
00 0
40 64
3F 63
FF 255
AD 173
The first thing I notice is the length is wrong. The length bytes indicate a total payload length of 20 bytes, but this is obviously not the case. Also, I’ve tried arriving at the checksum of AD (173) by doing just about every combination of bytes in the payload possible and I can’t seem to figure it out.
Any help would be very much appreciated!