CAN DragonEmSA
functionCAN Traffic

EmSACAN_SetCANEvents

Prototype

emsacan_result_t EmSACAN_SetCANEvents(
    emsacan_handle_t Handle,
    uint8_t ChannelNumber,
    void *NewMessageEvent,
    void *BusErrorEvent );

Description

Registers event handles signalled when new CAN data or bus errors occur on the specified port.

Parameters

ParameterDirectionTypeDescription
Handleinemsacan_handle_tSession handle from EmSACAN_Connect.
ChannelNumberinuint8_tZero-based port index (0 … NumberofChannels−1).
NewMessageEventinvoidEvent set when at least one message is waiting to be read on this port.
BusErrorEventinvoidEvent set on bus error on this port.

Return value

EMSACAN_OK on success, or another emsacan_result_t code on failure.

Example

HANDLE rx_event = CreateEvent(NULL, FALSE, FALSE, NULL);
HANDLE err_event = CreateEvent(NULL, FALSE, FALSE, NULL);
EmSACAN_SetCANEvents(handle, 0, rx_event, err_event);

DWORD w = WaitForSingleObject(rx_event, 100);
if (w == WAIT_OBJECT_0)
    EmSACAN_Read(handle, 0, &msg);

See also