CAN DragonEmSA
functionCAN Traffic

EmSACAN_Read

Prototype

emsacan_result_t EmSACAN_Read(
    emsacan_handle_t Handle,
    uint8_t ChannelNumber,
    emsacan_msg_t *pMessage );

Description

Reads one CAN message from the receive path for the specified port.

Parameters

ParameterDirectionTypeDescription
Handleinemsacan_handle_tSession handle from EmSACAN_Connect.
ChannelNumberinuint8_tZero-based port index (0 … NumberofChannels−1).
pMessageoutemsacan_msg_tStorage for the received frame.

Return value

EMSACAN_OK if a message was read, EMSACAN_ERR_RXEMPTY if none available,

Example

emsacan_msg_t msg;
emsacan_result_t rc = EmSACAN_Read(handle, 0, &msg);
if (rc == EMSACAN_OK)
{
    /* msg.id, msg.len, msg.data[], msg.timestamp, msg.type, msg.stat */
}
else if (rc == EMSACAN_ERR_RXEMPTY)
{
    /* queue empty — poll again later */
}

See also