CanIOFlagAbortOnError - automatically enforced by TransferSender if the node is in passive mode

This commit is contained in:
Pavel Kirienko
2015-07-03 10:41:39 +03:00
parent b927c1de5f
commit 71b62ede9c
5 changed files with 30 additions and 3 deletions
@@ -69,10 +69,15 @@ int TransferSender::send(const uint8_t* payload, unsigned payload_len, Monotonic
frame.setEndOfTransfer(true);
UAVCAN_ASSERT(frame.isStartOfTransfer() && frame.isEndOfTransfer() && !frame.getToggle());
return dispatcher_.send(frame, tx_deadline, blocking_deadline, qos_, flags_, iface_mask_);
const CanIOFlags flags = frame.getSrcNodeID().isUnicast() ? flags_ : (flags_ | CanIOFlagAbortOnError);
return dispatcher_.send(frame, tx_deadline, blocking_deadline, qos_, flags, iface_mask_);
}
else // Multi Frame Transfer
{
UAVCAN_ASSERT(!dispatcher_.isPassiveMode());
UAVCAN_ASSERT(frame.getSrcNodeID().isUnicast());
int offset = 0;
{
TransferCRC crc = crc_base_;