0
votes

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!

1

1 Answers

1
votes

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.