Implements the write-side conversion logic from generic messages to CAN frames.
More...
#include <IfCanImpl.hxx>
|
| Action | send_to_hardware () override |
| | This function will be called (on the main executor) to initiate sending this message to the hardware.
|
| |
| Action | find_local_alias () |
| | Performs the local alias lookup and branches depending on whether we found a local alias or not.
|
| |
| Action | get_can_frame_buffer () |
| |
| virtual Action | send_to_local_node () |
| | This state is called when an addressed message's destination is a node that is local to this interface.
|
| |
| virtual Action | send_finished () |
| | Virtual method called after the send is completed, i.e., all the frames are generated and sent to the hardware.
|
| |
| If * | async_if () |
| |
| GenMessage * | nmsg () |
| | Implementations shall call this function when they are done with sending the packet.
|
| |
| Action | addressed_entry () |
| | Addressed write flows should call this state BEFORE sending to the hardware.
|
| |
| Action | global_entry () |
| | Global write flows should return to this state AFTER sending the message to the hardware.
|
| |
| void | release () OVERRIDE |
| | Unrefs the current buffer.
|
| |
| void | return_buffer () |
| | For state flows that are operated using invoke_subflow_and_wait this is a way to hand back the buffer to the caller.
|
| |
| MessageType * | message () |
| |
| MessageType * | transfer_message () |
| | Releases ownership of the current message.
|
| |
|
| typedef Base::Action | Action |
| | Allows using Action without having StateFlowBase:: prefix in front of it.
|
| |
| typedef MessageType | message_type |
| | Stores the message template type for external reference.
|
| |
| static MessageType * | cast_alloc (QMember *entry) |
| | Down casts and initializes an asynchronous allocation result to the appropriate flow's buffer type.
|
| |
Implements the write-side conversion logic from generic messages to CAN frames.
Definition at line 50 of file IfCanImpl.hxx.
◆ CanMessageWriteFlow()
| openlcb::CanMessageWriteFlow::CanMessageWriteFlow |
( |
IfCan * |
if_can | ) |
|
|
inline |
◆ allocate_new_alias()
| Action openlcb::CanMessageWriteFlow::allocate_new_alias |
( |
| ) |
|
|
inlineprivate |
At this point we assume that there will always be at least one alias that is reserved but not yet used. If we want to break that assumption we need to have a method to kick off an alias allocation right here.
@TODO(balazs.racz): implement proper local alias reclaim/reuse mechanism.
Definition at line 97 of file IfCanImpl.hxx.
◆ fill_can_frame_buffer()
| virtual Action openlcb::CanMessageWriteFlow::fill_can_frame_buffer |
( |
| ) |
|
|
inlineprivatevirtual |
◆ find_local_alias()
| Action openlcb::CanMessageWriteFlow::find_local_alias |
( |
| ) |
|
|
inlineprotected |
Performs the local alias lookup and branches depending on whether we found a local alias or not.
Definition at line 85 of file IfCanImpl.hxx.
◆ get_can_frame_buffer()
| Action openlcb::CanMessageWriteFlow::get_can_frame_buffer |
( |
| ) |
|
|
inlineprotected |
◆ if_can()
| IfCan * openlcb::CanMessageWriteFlow::if_can |
( |
| ) |
|
|
inline |
◆ send_amd_frame()
| Action openlcb::CanMessageWriteFlow::send_amd_frame |
( |
| ) |
|
|
inlineprivate |
◆ send_to_hardware()
| Action openlcb::CanMessageWriteFlow::send_to_hardware |
( |
| ) |
|
|
inlineoverrideprotectedvirtual |
This function will be called (on the main executor) to initiate sending this message to the hardware.
The flow will then execute the returned action.
NOTE: it is possible that this functon will never be called for a given flow.
Implements openlcb::WriteFlowBase.
Definition at line 68 of file IfCanImpl.hxx.
◆ src_alias_lookup_done()
| Action openlcb::CanMessageWriteFlow::src_alias_lookup_done |
( |
| ) |
|
|
inlineprivate |
◆ dataOffset_
| uint8_t openlcb::CanMessageWriteFlow::dataOffset_ |
|
protected |
for continuation frames: which offset in the Buffer should we start the payload at.
Definition at line 65 of file IfCanImpl.hxx.
◆ dstAlias_
| NodeAlias openlcb::CanMessageWriteFlow::dstAlias_ |
|
protected |
◆ srcAlias_
| NodeAlias openlcb::CanMessageWriteFlow::srcAlias_ |
|
protected |
The documentation for this class was generated from the following file: