33#ifndef __DRIVERS_CANBUS_CAN_RX_MESSAGE_HANDLER__
34#define __DRIVERS_CANBUS_CAN_RX_MESSAGE_HANDLER__
59 can_msg_t *(*can_buffer_store_allocate_buffer)(void);
74 void (*alias_mapping_set_has_duplicate_alias_flag)(void);
77 uint8_t (*get_current_tick)(void);
97 void (*listener_set_alias)(
node_id_t node_id, uint16_t alias);
108 void (*listener_clear_alias_by_alias)(uint16_t alias);
121 void (*listener_flush_aliases)(void);
void CanRxMessageHandler_last_frame(can_msg_t *can_msg, uint8_t offset)
Handles the last frame of a multi-frame OpenLCB message.
Definition can_rx_message_handler.c:264
void CanRxMessageHandler_middle_frame(can_msg_t *can_msg, uint8_t offset)
Handles a middle frame of a multi-frame OpenLCB message.
Definition can_rx_message_handler.c:230
void CanRxMessageHandler_amr_frame(can_msg_t *can_msg)
Handles AMR (Alias Map Reset) CAN control frames.
Definition can_rx_message_handler.c:662
void CanRxMessageHandler_error_info_report_frame(can_msg_t *can_msg)
Handles Error Information Report CAN control frames.
Definition can_rx_message_handler.c:682
void CanRxMessageHandler_stream_frame(can_msg_t *can_msg, uint8_t offset, payload_type_enum data_type)
Handles stream protocol CAN frames (placeholder, not yet implemented).
Definition can_rx_message_handler.c:367
void CanRxMessageHandler_cid_frame(can_msg_t *can_msg)
Handles CID (Check ID) CAN control frames (CanFrameTransferS ยง6.2.5).
Definition can_rx_message_handler.c:387
void CanRxMessageHandler_initialize(const interface_can_rx_message_handler_t *interface_can_frame_message_handler)
Registers the dependency-injection interface for this module.
Definition can_rx_message_handler.c:65
void CanRxMessageHandler_can_legacy_snip(can_msg_t *can_msg, uint8_t offset, payload_type_enum data_type)
Handles legacy SNIP messages that lack standard framing bits.
Definition can_rx_message_handler.c:336
void CanRxMessageHandler_ame_frame(can_msg_t *can_msg)
Handles AME (Alias Map Enquiry) CAN control frames.
Definition can_rx_message_handler.c:541
void CanRxMessageHandler_amd_frame(can_msg_t *can_msg)
Handles AMD (Alias Map Definition) CAN control frames.
Definition can_rx_message_handler.c:509
void CanRxMessageHandler_rid_frame(can_msg_t *can_msg)
Handles RID (Reserve ID) CAN control frames.
Definition can_rx_message_handler.c:416
void CanRxMessageHandler_single_frame(can_msg_t *can_msg, uint8_t offset, payload_type_enum data_type)
Handles a complete single-frame OpenLCB message.
Definition can_rx_message_handler.c:289
void CanRxMessageHandler_first_frame(can_msg_t *can_msg, uint8_t offset, payload_type_enum data_type)
Handles the first frame of a multi-frame OpenLCB message.
Definition can_rx_message_handler.c:184
Type definitions and constants for the CAN transport layer.
OpenLCB node allocation, enumeration, and lifecycle management.
uint64_t node_id_t
48-bit Node ID stored in a 64-bit type (upper 16 bits unused).
Definition openlcb_types.h:359
payload_type_enum
Message buffer payload type identifier.
Definition openlcb_types.h:220
Definition can_types.h:190
Definition can_types.h:173
Definition can_types.h:118
Dependency-injection interface for the CAN receive message handlers.
Definition can_rx_message_handler.h:56
Definition can_types.h:209
Core OpenLCB message structure.
Definition openlcb_types.h:480