Tool is babel and UAVCAN GUI.
In multi-frame. I used the crc algorithm of px4 specification but it was wrong.
I then used the uavcan v1 crc algorithm and the result was the same as above.
Error message 1 is:
Transfer could not be decoded:
CRC mismatch: expected 7cae, got 29b1 for payload bytearray(b’123456789’) (DTID 1050)
Error message 2 is:
Transfer could not be decoded:
CRC mismatch: expected df20, got 8d16 for payload bytearray(b’\xd8\x00\x00\x00\x00\x00\x00\x01\x00\t\x80S\x19\x99B’) (DTID 1050)
What else needs to be modified for the CRC16 algorithm using px4 algorithm?
Thank you.
Confirm specs 4.1.
Algorithm is no problem.
The error is because my calculation has no data type signature.
Used data type signature resolved the problem.
Hello
There is a description in Section 4.1:" The Transfer CRC is computed from the transfer payload, prepended with a data type signature, in little-endian byte order. The diagram below illustrates the input of the transfer CRC function".
About generate the data type signature.
There is a description in Chapter3:“The data type signature is based on CRC-64-WE”.
(But I didn’t use this method. I use babel to analyze the UAVCAN GUI results. This is not all correct but it can work.)
Then add the data type signature in front of the original data, and then perform the crc calculation.
The data type signature is only used for calculation.
It is not included in the transmitted data.