I am unable to determine the rule for creating a Dynamic ID allocation message in FD mode. In non-FD, it is straightforward as expected from the DSDL when applying Tail Call Optomization.
The first byte makes sense. The rest, which encode the hardware unique ID, do not.
The first bit is correct. Of note, this is almost encoded by bit-shifting the original message to the right by 11 bits, but a few of the values are still incorrect. This is what that produces. (Note that this has 41 instead of 40, 168 instead of 171 etc, but most of the values are correct)
I am unable to determine the rule for creating a Dynamic ID allocation message in FD mode. In non-FD, it is straightforward as expected from the DSDL when applying Tail Call Optomization.
The first byte makes sense. The rest, which encode the hardware unique ID, do not.
Example unique ID as bytes:
Example message as created by PyDroneCAN, and expected in parsing via Dronecan GUI:
The first bit is correct. Of note, this is almost encoded by bit-shifting the original message to the right by 11 bits, but a few of the values are still incorrect. This is what that produces. (Note that this has 41 instead of 40, 168 instead of 171 etc, but most of the values are correct)
What we expect from the spec and DSDL is a 5-bit shift, due to the length-field.