Busmust CAN Message concrete type, usually used as payload of BMData.
The total length of this structure is 72B, it supports both classic and FD CAN messages.
CAN channel RX filter item structure, used by super::api::BM_SetRxFilters
The filter support masking ID, flags and payload according to its type,
in order for a message to be accepted, all the fields are masked using AND logic:
(flags & filter.flags_mask == filter.flags_value) AND (ID & filter.id_mask == filter.id_value) AND (payload & filter.payload_mask == filter.payload_value)
CAN channel TX task item structure, used by super::api::BM_SetTxTasks
Once the CAN device is armed with TX tasks, it will try to parse the TX task and send CAN messages automatically.
The difference with a software triggered CAN message in BusMaster is that hardware triggered CAN messages are
more precise in time and could reach a higher throughput.
Activate an opened channel, and thus goes on bus for the selected port and channels.
At this point, the user can transmit and receive messages on the bus.
Channel is default to be activated after BM_OpenEx is called.
Clear TX&RX message buffer of an opened channel.
This function is available since BM API 1.3, hardware status will not be changed when clearing buffer.
Deactivate an opened channel, and thus the selected channels goes off the bus and stay in BUSOFF state until re-activation.
Any call to BM_Write or BM_Read will return BMStatus::BusOff immediately if the channel is deactivated.
Read a message/event out of the given channel.
This function is non-blocked, and thus will return BMStatus::ReceiveBufferEmpty if no message is received.
Please use notifications to wait for RX events and then read message/event out of BM API internal RX buffer, otherwise you could also poll the device periodically.
Read multiple CAN messages out of the given channel.
This function is non-blocked, and thus will return BMStatus::ReceiveBufferEmpty if not all messages are received.
Please use notifications to wait for RX events and then read message/event out of BM API internal RX buffer, otherwise you could also poll the device periodically.
Reset an opened channel.
The configuration options will not lost when the channel is reset, so BM_Reset is basically identical to BM_Close and then BM_OpenEx.