Add send confirmation to CAN network interface
The CAN network interface used by the CANopen library does not support send confirmation of CAN frames. However, according to CiA 301, a CANopen node must wait until its boot-up message has been successfully sent before going to the pre-operational state.
In case of high bus load, this can occasionally cause problems when using the CAN network implementation from the I/O library. The boot-up message from the master will not be sent because it has too low a priority, and the resulting confirmation timeout will cancel the NMT reset communication command.
To fix this, we need to
-
add a can_send
object to CAN library for transmissions that need confirmation; -
implement confirmed transmissions in I/O library; -
use confirmed transmission for the CANopen boot-up message.
Edited by J. S. Seldenthuis