37#ifndef _UTILS_CANIF_HXX_
38#define _UTILS_CANIF_HXX_
51 CLR_CAN_FRAME_ERR(*
this);
52 CLR_CAN_FRAME_RTR(*
this);
53 SET_CAN_FRAME_EFF(*
this);
82 if (IS_CAN_FRAME_EFF(*
this))
84 return GET_CAN_FRAME_ID_EFF(*
this);
99 const struct can_frame &
frame()
const
204 return frameDispatcher_.service();
210 return &frameDispatcher_;
216 return &frameWriteFlow_;
223 return &frameReadFlow_;
246 return &frameReadFlow_;
StateFlow< Buffer< CanMessageData >, QList< 1 > > IncomingFrameFlow
StateFlow handling incoming messages as registered to the message dispatcher.
FlowInterface< Buffer< CanHubData > > OutgoingFrameHandler
Base class of flow to send outgoing CAN frames to.
FlowInterface< Buffer< CanMessageData > > IncomingFrameHandler
Base class for all QMember types that hold data in an expandable format.
This flow is responsible for taking data from the can HUB and sending it to the IfCan's dispatcher.
CanFrameReadFlow(CanIf *service)
Constructor.
Interface class for the asynchronous frame write flow.
void send(Buffer< CanHubData > *message, unsigned priority=UINT_MAX) OVERRIDE
Entry point to this flow.
CanFrameWriteFlow(CanIf *service)
Constructor.
CanIf * ifCan_
Parent that owns this flow.
Interface class for CANbus-based protocols.
FrameDispatchFlow * frame_dispatcher()
CanHubPortInterface * hub_port()
OutgoingFrameHandler * loopback_frame_write_flow()
DispatchFlow< Buffer< CanMessageData >, 4 > FrameDispatchFlow
Type of the dispatcher responsible for routing incoming frames to the frome handlers.
OutgoingFrameHandler * frame_write_flow()
CanFrameReadFlow frameReadFlow_
Flow responsible for translating from CAN hub packets to dispatcher packets.
CanHubFlow * device_
The device we need to send packets to.
CanFrameWriteFlow frameWriteFlow_
Flow responsible for writing packets to the CAN hub.
FrameDispatchFlow frameDispatcher_
Flow responsible for routing incoming messages to handlers.
Type-specific implementations of the DispatchFlow methods.
Abstract class for message recipients.
Data type wrapper for sending data through a Hub.
Pool of previously allocated, but currently unused, items.
Collection of related state machines that pend on incoming messages.
State flow with a given typed input queue.
#define OVERRIDE
Function attribute for virtual functions declaring that this funciton is overriding a funciton that s...
Thin wrapper around struct can_frame that will allow a dispatcher select the frames by CAN ID and mas...
struct can_frame * mutable_frame()
static const uint32_t CAN_STD_FRAME_FILTER
Filter to OR onto a can ID to tell the dispatcher to only consider extended can frames.
const struct can_frame & frame() const
static const id_type STANDARD_FRAME_BIT
This bit will be set in standard CAN frames when they get to the dispatcher.
CanMessageData()
Constructor.
static const uint32_t CAN_EXT_FRAME_MASK
Mask to OR onto a can mask to tell the dispatcher to only consider extended can frames.
static const uint32_t CAN_STD_FRAME_MASK
Mask to OR onto a can mask to tell the dispatcher to only consider extended can frames.
void * unused
This will be aliased onto CanHubData::skipMember_.
uint32_t id_type
This is the maskable identifier of the incoming CAN frames.
static const uint32_t CAN_EXT_FRAME_FILTER
Filter to OR onto a can ID to tell the dispatcher to only consider extended can frames.