Hi @pavel.kirienko and UAVCAN developers,
Firstly a big thanks on your awesome work, developing and implementing the UAVCAN standard and now pushing it to v1.0.
My query on the above migration guide:
Setup: A dual-stack application. I have a set of ESCs using v0 libcanard and running on STM32G4 board. I’m trying to command them from a v1 libcanard publisher. The DSDL I’ve used is the one which worked with v0, but upgraded to v1.0 specification by
- Included
@extent
in the DSDL file, and used Nunavut to generate appropriate serialization code. - Named the data-type identifier as an unregulated fixed-port type, in a different root namespace following v1 specification.
Questions:
- Was hoping to get the reception of (v1) frames working on the ESCs as per the suggestion in the migration guide above i.e. changed the mask of
MSG_FROM_TYPE_ID(x)
from0x7FFFU
to0x1FFFU
(in v0canard.c
) to clear the most significant two-bits of the subject ID. Couldn’t get lucky with that; is there anything else I’m missing here? Would this dual-stack setup work? - Do I need to take care of the toggle-bit in (received) payload frames as touched upon here?
Side notes:
- Was able to verify the reception (and decoding) of v1 Canard RX transfers using SocketCAN media-layer.
- Updating the MSB bits as above on the ESCs having v0 libcanard didn’t seem to affect much, as they behaved as expected with v0-based commands sent from
uavcan_gui_tool
.
Cheers,
Ashish