What data for which node?


I want to implement the UAVCAN protocol via libcanard on a motor controller. What I couldn’t deduce from looking at the documentation is, how do nodes decide what information to take from the messages.

For example I want to use uavcan.equipment.esc.RPMCommand. As a message rather than service it does not have a destination node ID, so I’m assuming that the nodes just pick out the right entry in the data array? If that is the case, what is the standard way for a node to decide, which entry to pick? Does it have something to do with the node ID, is it arbitrary? Or am I misunderstanding something entirely?


The node is supposed to have a configuration parameter dictating which entry to pick. In the case of ESC, it’s usually named uavcan.esc_index, but it’s not a hard requirement.

No. The node-ID is a transport-layer entity.

1 Like