Reputation: 11
On section 2.3 of CRC16 computation of this:
https://www.mennegat.nl/media/shop_item/Mezzo_Doc_1.1.0.pdf
It tries to explain how to calculate the checksum. I have a working example which calculates
d37ccb00526000000014000000
As a checksum of:
0825
The entire payload of the UDP packet being
02d37ccb00526000000014000000082503
The device responds as it is a fully acceptable packet. I just cant seem to figure out with all the example crc checks to find a 16 bit match out there of 0825.
We use the following 16 bit crc checks which I dont think any of them output 0825 as the result.
https://github.com/sigurn/crc16/blob/master/crc16.go#L26-L48
Thanks for your help!
Upvotes: 0
Views: 73
Reputation: 28826
It appears that the CRC is being stored in little endian format. Using the linked to code as a basis, with initial value CRC = 0, the code generates a CRC of 0x2508, which is being stored as 0x08 0x25.
There's a small chance that an initial value could result in CRC = 0x0825, but more example data would be needed.
Upvotes: 1