AgIsoStack++
A control-function-focused implementation of the major ISOBUS and J1939 protocols
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
isobus::ExtendedTransportProtocolManager Class Reference

A class that handles the ISO11783 extended transport protocol. More...

#include <can_extended_transport_protocol.hpp>

Collaboration diagram for isobus::ExtendedTransportProtocolManager:
[legend]

Classes

class  ExtendedTransportProtocolSession
 A storage object to keep track of session information internally. More...
 

Public Types

enum class  StateMachineState {
  None , SendRequestToSend , WaitForClearToSend , SendClearToSend ,
  WaitForDataPacketOffset , SendDataPacketOffset , WaitForDataTransferPacket , SendDataTransferPackets ,
  WaitForEndOfMessageAcknowledge
}
 The states that a ETP session could be in. Used for the internal state machine. More...
 
enum class  ConnectionAbortReason : std::uint8_t {
  Reserved = 0 , AlreadyInCMSession = 1 , SystemResourcesNeeded = 2 , Timeout = 3 ,
  ClearToSendReceivedWhileTransferInProgress = 4 , MaximumRetransmitRequestLimitReached = 5 , UnexpectedDataTransferPacketReceived = 6 , BadSequenceNumber = 7 ,
  DuplicateSequenceNumber = 8 , UnexpectedDataPacketOffsetReceived = 9 , UnexpectedDataPacketOffsetPGN = 10 , DataPacketOffsetExceedsClearToSend = 11 ,
  BadDataPacketOffset = 12 , UnexpectedClearToSendPGN = 14 , NumberOfClearToSendPacketsExceedsMessage = 15 , AnyOtherError = 250
}
 A list of all defined abort reasons in ISO11783. More...
 

Public Member Functions

 ExtendedTransportProtocolManager (const CANMessageFrameCallback &sendCANFrameCallback, const CANMessageCallback &canMessageReceivedCallback, const CANNetworkConfiguration *configuration)
 The constructor for the ExtendedTransportProtocolManager, for advanced use only. In most cases, you should use the CANNetworkManager::send_can_message() function to transmit messages.
 
void update ()
 Updates all sessions managed by this protocol manager instance.
 
bool has_session (std::shared_ptr< ControlFunction > source, std::shared_ptr< ControlFunction > destination)
 Checks if the source and destination control function have an active session/connection.
 
const std::vector< std::shared_ptr< ExtendedTransportProtocolSession > > & get_sessions () const
 Gets all the active transport protocol sessions that are currently active.
 
void process_message (const CANMessage &message)
 A generic way for a protocol to process a received message.
 
bool protocol_transmit_message (std::uint32_t parameterGroupNumber, std::unique_ptr< CANMessageData > &data, std::shared_ptr< ControlFunction > source, std::shared_ptr< ControlFunction > destination, TransmitCompleteCallback sessionCompleteCallback, void *parentPointer)
 The network manager calls this to see if the protocol can accept a long CAN message for processing.
 

Static Public Attributes

static constexpr std::uint32_t REQUEST_TO_SEND_MULTIPLEXOR = 0x14
 (20) ETP.CM_RTS Multiplexor
 
static constexpr std::uint32_t CLEAR_TO_SEND_MULTIPLEXOR = 0x15
 (21) ETP.CM_CTS Multiplexor
 
static constexpr std::uint32_t DATA_PACKET_OFFSET_MULTIPLXOR = 0x16
 (22) ETP.CM_DPO Multiplexor
 
static constexpr std::uint32_t END_OF_MESSAGE_ACKNOWLEDGE_MULTIPLEXOR = 0x17
 (23) TP.CM_EOMA Multiplexor
 
static constexpr std::uint32_t CONNECTION_ABORT_MULTIPLEXOR = 0xFF
 (255) Abort multiplexor
 
static constexpr std::uint32_t MAX_PROTOCOL_DATA_LENGTH = 117440505
 The max number of bytes that this protocol can transfer.
 
static constexpr std::uint16_t T1_TIMEOUT_MS = 750
 The t1 timeout as defined by the standard.
 
static constexpr std::uint16_t T2_T3_TIMEOUT_MS = 1250
 The t2/t3 timeouts as defined by the standard.
 
static constexpr std::uint16_t T4_TIMEOUT_MS = 1050
 The t4 timeout as defined by the standard.
 
static constexpr std::uint8_t TR_TIMEOUT_MS = 200
 The Tr Timeout as defined by the standard.
 
static constexpr std::uint8_t SEQUENCE_NUMBER_DATA_INDEX = 0
 The index of the sequence number in a frame.
 
static constexpr std::uint8_t PROTOCOL_BYTES_PER_FRAME = 7
 The number of payload bytes per frame minus overhead of sequence number.
 

Private Member Functions

bool abort_session (std::shared_ptr< ExtendedTransportProtocolSession > &session, ConnectionAbortReason reason)
 Aborts the session with the specified abort reason. Sends a CAN message.
 
bool send_abort (std::shared_ptr< InternalControlFunction > sender, std::shared_ptr< ControlFunction > receiver, std::uint32_t parameterGroupNumber, ConnectionAbortReason reason) const
 Send an abort with no corresponding session with the specified abort reason. Sends a CAN message.
 
void close_session (std::shared_ptr< ExtendedTransportProtocolSession > &session, bool successful)
 Gracefully closes a session to prepare for a new session.
 
bool send_request_to_send (std::shared_ptr< ExtendedTransportProtocolSession > &session) const
 Sends the "request to send" message as part of initiating a transmit.
 
bool send_clear_to_send (std::shared_ptr< ExtendedTransportProtocolSession > &session) const
 Sends the "clear to send" message.
 
bool send_data_packet_offset (std::shared_ptr< ExtendedTransportProtocolSession > &session) const
 Sends the "data packet offset" message for the provided session.
 
bool send_end_of_session_acknowledgement (std::shared_ptr< ExtendedTransportProtocolSession > &session) const
 Sends the "end of message acknowledgement" message for the provided session.
 
void send_data_transfer_packets (std::shared_ptr< ExtendedTransportProtocolSession > &session) const
 Sends data transfer packets for the specified ExtendedTransportProtocolSession.
 
void process_request_to_send (const std::shared_ptr< ControlFunction > source, const std::shared_ptr< ControlFunction > destination, std::uint32_t parameterGroupNumber, std::uint32_t totalMessageSize)
 Processes a request to send a message over the CAN transport protocol.
 
void process_clear_to_send (const std::shared_ptr< ControlFunction > source, const std::shared_ptr< ControlFunction > destination, std::uint32_t parameterGroupNumber, std::uint8_t packetsToBeSent, std::uint32_t nextPacketNumber)
 Processes the Clear To Send (CTS) message.
 
void process_data_packet_offset (const std::shared_ptr< ControlFunction > source, const std::shared_ptr< ControlFunction > destination, std::uint32_t parameterGroupNumber, std::uint8_t numberOfPackets, std::uint32_t packetOffset)
 Processes the Data Packet Offset (DPO) message.
 
void process_end_of_session_acknowledgement (const std::shared_ptr< ControlFunction > source, const std::shared_ptr< ControlFunction > destination, std::uint32_t parameterGroupNumber, std::uint32_t numberOfBytesTransferred)
 Processes the end of session acknowledgement.
 
void process_abort (const std::shared_ptr< ControlFunction > source, const std::shared_ptr< ControlFunction > destination, std::uint32_t parameterGroupNumber, ExtendedTransportProtocolManager::ConnectionAbortReason reason)
 Processes an abort message in the CAN transport protocol.
 
void process_connection_management_message (const CANMessage &message)
 Processes a connection management message.
 
void process_data_transfer_message (const CANMessage &message)
 Processes a data transfer message.
 
std::shared_ptr< ExtendedTransportProtocolSessionget_session (std::shared_ptr< ControlFunction > source, std::shared_ptr< ControlFunction > destination)
 Gets a ETP session from the passed in source and destination and PGN combination.
 
void update_state_machine (std::shared_ptr< ExtendedTransportProtocolSession > &session)
 Update the state machine for the passed in session.
 

Private Attributes

std::vector< std::shared_ptr< ExtendedTransportProtocolSession > > activeSessions
 A list of all active ETP sessions.
 
const CANMessageFrameCallback sendCANFrameCallback
 A callback for sending a CAN frame.
 
const CANMessageCallback canMessageReceivedCallback
 A callback for when a complete CAN message is received using the ETP protocol.
 
const CANNetworkConfigurationconfiguration
 The configuration to use for this protocol.
 

Detailed Description

A class that handles the ISO11783 extended transport protocol.

This class handles transmission and reception of CAN messages more than 1785 bytes. Simply call Simply call CANNetworkManager::send_can_message() with an appropriate data length, and the protocol will be automatically selected to be used.

Definition at line 25 of file can_extended_transport_protocol.hpp.

Member Enumeration Documentation

◆ ConnectionAbortReason

A list of all defined abort reasons in ISO11783.

Enumerator
Reserved 

Reserved, not to be used, but should be tolerated.

AlreadyInCMSession 

We are already in a connection mode session and can't support another.

SystemResourcesNeeded 

Session must be aborted because the system needs resources.

Timeout 

General timeout.

ClearToSendReceivedWhileTransferInProgress 

A CTS was received while already processing the last CTS.

MaximumRetransmitRequestLimitReached 

Maximum retries for the data has been reached.

UnexpectedDataTransferPacketReceived 

A data packet was received outside the proper state.

BadSequenceNumber 

Incorrect sequence number was received and cannot be recovered.

DuplicateSequenceNumber 

Re-received a sequence number we've already processed.

UnexpectedDataPacketOffsetPGN 

Received a data packet offset with an unexpected PGN.

DataPacketOffsetExceedsClearToSend 

Received a number of packets in EDPO greater than CTS.

BadDataPacketOffset 

Received a data packet offset that is incorrect.

UnexpectedClearToSendPGN 

Received a CTS with an unexpected PGN.

NumberOfClearToSendPacketsExceedsMessage 

Received a CTS with a number of packets greater than the message.

AnyOtherError 

Any reason not defined in the standard.

Definition at line 43 of file can_extended_transport_protocol.hpp.

◆ StateMachineState

The states that a ETP session could be in. Used for the internal state machine.

Enumerator
None 

Protocol session is not in progress.

SendRequestToSend 

We are sending the request to send message.

WaitForClearToSend 

We are waiting for a clear to send message.

SendClearToSend 

We are sending clear to send message.

WaitForDataPacketOffset 

We are waiting for a data packet offset message.

SendDataPacketOffset 

We are sending a data packet offset message.

WaitForDataTransferPacket 

We are waiting for data transfer packets.

SendDataTransferPackets 

A Tx data session is in progress.

WaitForEndOfMessageAcknowledge 

We are waiting for an end of message acknowledgement.

Definition at line 29 of file can_extended_transport_protocol.hpp.

Constructor & Destructor Documentation

◆ ExtendedTransportProtocolManager()

isobus::ExtendedTransportProtocolManager::ExtendedTransportProtocolManager ( const CANMessageFrameCallback & sendCANFrameCallback,
const CANMessageCallback & canMessageReceivedCallback,
const CANNetworkConfiguration * configuration )

The constructor for the ExtendedTransportProtocolManager, for advanced use only. In most cases, you should use the CANNetworkManager::send_can_message() function to transmit messages.

Parameters
[in]sendCANFrameCallbackA callback for sending a CAN frame to hardware
[in]canMessageReceivedCallbackA callback for when a complete CAN message is received using the ETP protocol
[in]configurationThe configuration to use for this protocol

Definition at line 122 of file can_extended_transport_protocol.cpp.

Member Function Documentation

◆ abort_session()

bool isobus::ExtendedTransportProtocolManager::abort_session ( std::shared_ptr< ExtendedTransportProtocolSession > & session,
ConnectionAbortReason reason )
private

Aborts the session with the specified abort reason. Sends a CAN message.

Parameters
[in]sessionThe session to abort
[in]reasonThe reason we're aborting the session
Returns
true if the abort was send OK, false if not sent

Definition at line 728 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ close_session()

void isobus::ExtendedTransportProtocolManager::close_session ( std::shared_ptr< ExtendedTransportProtocolSession > & session,
bool successful )
private

Gracefully closes a session to prepare for a new session.

Parameters
[in]sessionThe session to close
[in]successfulDenotes if the session was successful

Definition at line 774 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ get_session()

std::shared_ptr< ExtendedTransportProtocolManager::ExtendedTransportProtocolSession > isobus::ExtendedTransportProtocolManager::get_session ( std::shared_ptr< ControlFunction > source,
std::shared_ptr< ControlFunction > destination )
private

Gets a ETP session from the passed in source and destination and PGN combination.

Parameters
[in]sourceThe source control function for the session
[in]destinationThe destination control function for the session
Returns
a matching session, or nullptr if no session matched the supplied parameters

Definition at line 910 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ get_sessions()

const std::vector< std::shared_ptr< ExtendedTransportProtocolManager::ExtendedTransportProtocolSession > > & isobus::ExtendedTransportProtocolManager::get_sessions ( ) const

Gets all the active transport protocol sessions that are currently active.

Note
The list returns pointers to the transport protocol sessions, but they can disappear at any time
Returns
A list of all the active transport protocol sessions

Definition at line 919 of file can_extended_transport_protocol.cpp.

◆ has_session()

bool isobus::ExtendedTransportProtocolManager::has_session ( std::shared_ptr< ControlFunction > source,
std::shared_ptr< ControlFunction > destination )

Checks if the source and destination control function have an active session/connection.

Parameters
[in]sourceThe source control function for the session
[in]destinationThe destination control function for the session
Returns
true if a matching session was found, false if not

Definition at line 903 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ process_abort()

void isobus::ExtendedTransportProtocolManager::process_abort ( const std::shared_ptr< ControlFunction > source,
const std::shared_ptr< ControlFunction > destination,
std::uint32_t parameterGroupNumber,
ExtendedTransportProtocolManager::ConnectionAbortReason reason )
private

Processes an abort message in the CAN transport protocol.

Parameters
[in]sourceThe shared pointer to the source control function.
[in]destinationThe shared pointer to the destination control function.
[in]parameterGroupNumberThe PGN (Parameter Group Number) of the message.
[in]reasonThe reason for the connection abort.

Definition at line 306 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_clear_to_send()

void isobus::ExtendedTransportProtocolManager::process_clear_to_send ( const std::shared_ptr< ControlFunction > source,
const std::shared_ptr< ControlFunction > destination,
std::uint32_t parameterGroupNumber,
std::uint8_t packetsToBeSent,
std::uint32_t nextPacketNumber )
private

Processes the Clear To Send (CTS) message.

Parameters
[in]sourceThe shared pointer to the source control function.
[in]destinationThe shared pointer to the destination control function.
[in]parameterGroupNumberThe Parameter Group Number (PGN) of the message.
[in]packetsToBeSentThe number of packets to be sent.
[in]nextPacketNumberThe next packet number.

Definition at line 181 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_connection_management_message()

void isobus::ExtendedTransportProtocolManager::process_connection_management_message ( const CANMessage & message)
private

Processes a connection management message.

Parameters
[in]messageThe CAN message to be processed.

Definition at line 334 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_data_packet_offset()

void isobus::ExtendedTransportProtocolManager::process_data_packet_offset ( const std::shared_ptr< ControlFunction > source,
const std::shared_ptr< ControlFunction > destination,
std::uint32_t parameterGroupNumber,
std::uint8_t numberOfPackets,
std::uint32_t packetOffset )
private

Processes the Data Packet Offset (DPO) message.

Parameters
[in]sourceThe shared pointer to the source control function.
[in]destinationThe shared pointer to the destination control function.
[in]parameterGroupNumberThe Parameter Group Number (PGN) of the message.
[in]numberOfPacketsThe number of packets that will follow.
[in]packetOffsetThe packet offset (always 1 less than CTS next packet number)

Definition at line 227 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_data_transfer_message()

void isobus::ExtendedTransportProtocolManager::process_data_transfer_message ( const CANMessage & message)
private

Processes a data transfer message.

Parameters
[in]messageThe CAN message to be processed.

Definition at line 408 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_end_of_session_acknowledgement()

void isobus::ExtendedTransportProtocolManager::process_end_of_session_acknowledgement ( const std::shared_ptr< ControlFunction > source,
const std::shared_ptr< ControlFunction > destination,
std::uint32_t parameterGroupNumber,
std::uint32_t numberOfBytesTransferred )
private

Processes the end of session acknowledgement.

Parameters
[in]sourceThe source control function.
[in]destinationThe destination control function.
[in]parameterGroupNumberThe parameter group number.
[in]numberOfBytesTransferredThe number of bytes transferred.

Definition at line 279 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_message()

void isobus::ExtendedTransportProtocolManager::process_message ( const CANMessage & message)

A generic way for a protocol to process a received message.

Parameters
[in]messageA received CAN message

Definition at line 491 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:

◆ process_request_to_send()

void isobus::ExtendedTransportProtocolManager::process_request_to_send ( const std::shared_ptr< ControlFunction > source,
const std::shared_ptr< ControlFunction > destination,
std::uint32_t parameterGroupNumber,
std::uint32_t totalMessageSize )
private

Processes a request to send a message over the CAN transport protocol.

Parameters
[in]sourceThe shared pointer to the source control function.
[in]destinationThe shared pointer to the destination control function.
[in]parameterGroupNumberThe Parameter Group Number of the message.
[in]totalMessageSizeThe total size of the message in bytes.

Definition at line 131 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ protocol_transmit_message()

bool isobus::ExtendedTransportProtocolManager::protocol_transmit_message ( std::uint32_t parameterGroupNumber,
std::unique_ptr< CANMessageData > & data,
std::shared_ptr< ControlFunction > source,
std::shared_ptr< ControlFunction > destination,
TransmitCompleteCallback sessionCompleteCallback,
void * parentPointer )

The network manager calls this to see if the protocol can accept a long CAN message for processing.

Parameters
[in]parameterGroupNumberThe PGN of the message
[in]dataThe data to be sent
[in]sourceThe source control function
[in]destinationThe destination control function
[in]sessionCompleteCallbackA callback for when the protocol completes its work
[in]parentPointerA generic context object for the tx complete and chunk callbacks
Returns
true if the message was accepted by the protocol for processing

Definition at line 516 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:

◆ send_abort()

bool isobus::ExtendedTransportProtocolManager::send_abort ( std::shared_ptr< InternalControlFunction > sender,
std::shared_ptr< ControlFunction > receiver,
std::uint32_t parameterGroupNumber,
ConnectionAbortReason reason ) const
private

Send an abort with no corresponding session with the specified abort reason. Sends a CAN message.

Parameters
[in]senderThe sender of the abort
[in]receiverThe receiver of the abort
[in]parameterGroupNumberThe PGN of the ETP "session" we're aborting
[in]reasonThe reason we're aborting the session
Returns
true if the abort was send OK, false if not sent

Definition at line 752 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ send_clear_to_send()

bool isobus::ExtendedTransportProtocolManager::send_clear_to_send ( std::shared_ptr< ExtendedTransportProtocolSession > & session) const
private

Sends the "clear to send" message.

Parameters
[in]sessionThe session for which we're sending the CTS
Returns
true if the CTS was sent, false if sending was not successful

Definition at line 804 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ send_data_packet_offset()

bool isobus::ExtendedTransportProtocolManager::send_data_packet_offset ( std::shared_ptr< ExtendedTransportProtocolSession > & session) const
private

Sends the "data packet offset" message for the provided session.

Parameters
[in]sessionThe session for which we're sending the DPO
Returns
true if the DPO was sent, false if sending was not successful

Definition at line 836 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ send_data_transfer_packets()

void isobus::ExtendedTransportProtocolManager::send_data_transfer_packets ( std::shared_ptr< ExtendedTransportProtocolSession > & session) const
private

Sends data transfer packets for the specified ExtendedTransportProtocolSession.

Parameters
[in]sessionThe ExtendedTransportProtocolSession for which to send data transfer packets.

Definition at line 584 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send_end_of_session_acknowledgement()

bool isobus::ExtendedTransportProtocolManager::send_end_of_session_acknowledgement ( std::shared_ptr< ExtendedTransportProtocolSession > & session) const
private

Sends the "end of message acknowledgement" message for the provided session.

Parameters
[in]sessionThe session for which we're sending the EOM ACK
Returns
true if the EOM was sent, false if sending was not successful

Definition at line 880 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ send_request_to_send()

bool isobus::ExtendedTransportProtocolManager::send_request_to_send ( std::shared_ptr< ExtendedTransportProtocolSession > & session) const
private

Sends the "request to send" message as part of initiating a transmit.

Parameters
[in]sessionThe session for which we're sending the RTS
Returns
true if the RTS was sent, false if sending was not successful

Definition at line 785 of file can_extended_transport_protocol.cpp.

Here is the caller graph for this function:

◆ update()

void isobus::ExtendedTransportProtocolManager::update ( )

Updates all sessions managed by this protocol manager instance.

Definition at line 561 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:

◆ update_state_machine()

void isobus::ExtendedTransportProtocolManager::update_state_machine ( std::shared_ptr< ExtendedTransportProtocolSession > & session)
private

Update the state machine for the passed in session.

Parameters
[in]sessionThe session to update

Definition at line 637 of file can_extended_transport_protocol.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ activeSessions

std::vector<std::shared_ptr<ExtendedTransportProtocolSession> > isobus::ExtendedTransportProtocolManager::activeSessions
private

A list of all active ETP sessions.

Definition at line 303 of file can_extended_transport_protocol.hpp.

◆ canMessageReceivedCallback

const CANMessageCallback isobus::ExtendedTransportProtocolManager::canMessageReceivedCallback
private

A callback for when a complete CAN message is received using the ETP protocol.

Definition at line 305 of file can_extended_transport_protocol.hpp.

◆ CLEAR_TO_SEND_MULTIPLEXOR

constexpr std::uint32_t isobus::ExtendedTransportProtocolManager::CLEAR_TO_SEND_MULTIPLEXOR = 0x15
staticconstexpr

(21) ETP.CM_CTS Multiplexor

Definition at line 147 of file can_extended_transport_protocol.hpp.

◆ configuration

const CANNetworkConfiguration* isobus::ExtendedTransportProtocolManager::configuration
private

The configuration to use for this protocol.

Definition at line 306 of file can_extended_transport_protocol.hpp.

◆ CONNECTION_ABORT_MULTIPLEXOR

constexpr std::uint32_t isobus::ExtendedTransportProtocolManager::CONNECTION_ABORT_MULTIPLEXOR = 0xFF
staticconstexpr

(255) Abort multiplexor

Definition at line 150 of file can_extended_transport_protocol.hpp.

◆ DATA_PACKET_OFFSET_MULTIPLXOR

constexpr std::uint32_t isobus::ExtendedTransportProtocolManager::DATA_PACKET_OFFSET_MULTIPLXOR = 0x16
staticconstexpr

(22) ETP.CM_DPO Multiplexor

Definition at line 148 of file can_extended_transport_protocol.hpp.

◆ END_OF_MESSAGE_ACKNOWLEDGE_MULTIPLEXOR

constexpr std::uint32_t isobus::ExtendedTransportProtocolManager::END_OF_MESSAGE_ACKNOWLEDGE_MULTIPLEXOR = 0x17
staticconstexpr

(23) TP.CM_EOMA Multiplexor

Definition at line 149 of file can_extended_transport_protocol.hpp.

◆ MAX_PROTOCOL_DATA_LENGTH

constexpr std::uint32_t isobus::ExtendedTransportProtocolManager::MAX_PROTOCOL_DATA_LENGTH = 117440505
staticconstexpr

The max number of bytes that this protocol can transfer.

Definition at line 151 of file can_extended_transport_protocol.hpp.

◆ PROTOCOL_BYTES_PER_FRAME

constexpr std::uint8_t isobus::ExtendedTransportProtocolManager::PROTOCOL_BYTES_PER_FRAME = 7
staticconstexpr

The number of payload bytes per frame minus overhead of sequence number.

Definition at line 157 of file can_extended_transport_protocol.hpp.

◆ REQUEST_TO_SEND_MULTIPLEXOR

constexpr std::uint32_t isobus::ExtendedTransportProtocolManager::REQUEST_TO_SEND_MULTIPLEXOR = 0x14
staticconstexpr

(20) ETP.CM_RTS Multiplexor

Definition at line 146 of file can_extended_transport_protocol.hpp.

◆ sendCANFrameCallback

const CANMessageFrameCallback isobus::ExtendedTransportProtocolManager::sendCANFrameCallback
private

A callback for sending a CAN frame.

Definition at line 304 of file can_extended_transport_protocol.hpp.

◆ SEQUENCE_NUMBER_DATA_INDEX

constexpr std::uint8_t isobus::ExtendedTransportProtocolManager::SEQUENCE_NUMBER_DATA_INDEX = 0
staticconstexpr

The index of the sequence number in a frame.

Definition at line 156 of file can_extended_transport_protocol.hpp.

◆ T1_TIMEOUT_MS

constexpr std::uint16_t isobus::ExtendedTransportProtocolManager::T1_TIMEOUT_MS = 750
staticconstexpr

The t1 timeout as defined by the standard.

Definition at line 152 of file can_extended_transport_protocol.hpp.

◆ T2_T3_TIMEOUT_MS

constexpr std::uint16_t isobus::ExtendedTransportProtocolManager::T2_T3_TIMEOUT_MS = 1250
staticconstexpr

The t2/t3 timeouts as defined by the standard.

Definition at line 153 of file can_extended_transport_protocol.hpp.

◆ T4_TIMEOUT_MS

constexpr std::uint16_t isobus::ExtendedTransportProtocolManager::T4_TIMEOUT_MS = 1050
staticconstexpr

The t4 timeout as defined by the standard.

Definition at line 154 of file can_extended_transport_protocol.hpp.

◆ TR_TIMEOUT_MS

constexpr std::uint8_t isobus::ExtendedTransportProtocolManager::TR_TIMEOUT_MS = 200
staticconstexpr

The Tr Timeout as defined by the standard.

Definition at line 155 of file can_extended_transport_protocol.hpp.


The documentation for this class was generated from the following files: