13 auto node =
new (std::align_val_t(LIBXR_CACHE_LINE_SIZE))
29 node.
cb.
Run(in_isr, pack);
35 node.
cb.
Run(in_isr, pack);
49 auto node =
new (std::align_val_t(LIBXR_CACHE_LINE_SIZE))
62 case FilterMode::ID_MASK:
65 node.
cb.
Run(in_isr, pack);
68 case FilterMode::ID_RANGE:
71 node.
cb.
Run(in_isr, pack);
Type
CAN 消息类型。CAN frame type.
@ REMOTE_STANDARD
标准远程帧。Standard remote frame.
@ TYPE_NUM
类型数量上界。Number of frame types.
void OnMessage(const ClassicPack &pack, bool in_isr)
分发接收到的经典 CAN 帧。 Dispatch a received classic CAN frame.
void Register(Callback cb, Type type, FilterMode mode=FilterMode::ID_RANGE, uint32_t start_id_mask=0, uint32_t end_id_mask=UINT32_MAX)
注册经典 CAN 消息回调。 Register classic CAN message callback.
LockFreeList subscriber_list_[static_cast< uint8_t >(Type::TYPE_NUM)]
按帧类型划分的订阅者链表数组。Subscriber lists per frame type.
FilterMode
CAN 过滤器模式。CAN filter mode.
提供一个通用的回调包装,支持动态参数传递。 Provides a generic callback wrapper, supporting dynamic argument passing.
void Run(bool in_isr, PassArgs &&...args) const
执行回调函数,并传递参数。 Executes the callback function, passing the arguments.
LockFreeList subscriber_list_fd_[static_cast< uint8_t >(Type::REMOTE_STANDARD)]
按帧类型划分的 FD 订阅者链表数组。FD subscriber lists per frame type.
void OnMessage(const FDPack &pack, bool in_isr)
分发接收到的 FD CAN 帧。 Dispatch a received FD CAN frame.
void Register(CallbackFD cb, Type type, FilterMode mode=FilterMode::ID_RANGE, uint32_t start_id_mask=0, uint32_t end_id_mask=UINT32_MAX)
注册 FDCAN FD 帧回调。 Register FDCAN FD frame callback.
数据节点模板,继承自 BaseNode,用于存储具体数据类型。 Template data node that inherits from BaseNode to store specific data...
经典 CAN 帧数据结构。Classic CAN frame structure.
uint32_t id
CAN ID(11/29 bit 或 ErrorID)。CAN ID (11/29 bits or ErrorID).
经典 CAN 订阅过滤器。Classic CAN subscription filter.
uint32_t start_id_mask
起始 ID 或掩码。Start ID or mask.
uint32_t end_id_mask
结束 ID 或匹配值。End ID or match value.
Callback cb
回调函数。Callback function.
FilterMode mode
过滤模式。Filter mode.
CAN FD 帧数据结构。CAN FD frame structure.
uint32_t id
CAN ID。CAN ID.
FDCAN 订阅过滤器。FDCAN subscription filter.
FilterMode mode
过滤模式。Filter mode.
uint32_t start_id_mask
起始 ID 或掩码。Start ID or mask.
CallbackFD cb
回调函数。Callback function.
uint32_t end_id_mask
结束 ID 或匹配值。End ID or match value.