|
CAN CoreX 2.3.1
Table-driven CAN, CAN FD, ISO-TP, network simulation, and bus monitoring library
|
ISO 15765-2 transport over classic CAN and CAN FD. More...
Data Structures | |
| struct | CCX_ISOTP_Padding_t |
| ISO-TP padding configuration. More... | |
| struct | CCX_ISOTP_TX_Config_t |
| ISO-TP TX configuration structure. More... | |
| struct | CCX_ISOTP_RX_Config_t |
| ISO-TP RX configuration structure. More... | |
| struct | CCX_ISOTP_TX_t |
| ISO-TP TX instance structure. More... | |
| struct | CCX_ISOTP_RX_t |
| ISO-TP RX instance structure. More... | |
Macros | |
| #define | CCX_ISOTP_MAX_CLASSIC_DATA_SIZE 4095U |
| Maximum ISO-TP payload for classic CAN instances. | |
| #define | CCX_ISOTP_MAX_FD_DATA_SIZE UINT32_MAX |
| Maximum ISO-TP payload for CAN FD instances. | |
| #define | CCX_ISOTP_MAX_DATA_SIZE CCX_ISOTP_MAX_FD_DATA_SIZE |
| Build-wide compatibility alias for the active default limit. | |
| #define | CCX_ISOTP_NO_PADDING ((CCX_ISOTP_Padding_t){.Enable = CCX_ISOTP_PADDING_DISABLED, .PaddingByte = 0U}) |
| #define | CCX_ISOTP_PADDING(byte) |
| #define | CCX_ISOTP_STMIN_100US 0xF1U |
| #define | CCX_ISOTP_STMIN_200US 0xF2U |
| #define | CCX_ISOTP_STMIN_300US 0xF3U |
| #define | CCX_ISOTP_STMIN_400US 0xF4U |
| #define | CCX_ISOTP_STMIN_500US 0xF5U |
| #define | CCX_ISOTP_STMIN_600US 0xF6U |
| #define | CCX_ISOTP_STMIN_700US 0xF7U |
| #define | CCX_ISOTP_STMIN_800US 0xF8U |
| #define | CCX_ISOTP_STMIN_900US 0xF9U |
| #define | CCX_ISOTP_RX_TABLE_ENTRY(isotp_rx_ptr, can_id, ide_flag) |
| Macro to generate CAN CoreX RX table entry for ISO-TP RX instance. | |
| #define | CCX_ISOTP_TX_FC_TABLE_ENTRY(isotp_tx_ptr, fc_can_id, ide_flag) |
| Macro to generate CAN CoreX RX table entry for ISO-TP TX Flow Control. | |
| #define | CCX_ISOTP_RX_TABLE_ENTRY_EX(isotp_rx_ptr, can_id, ide_flag, frame_format) |
| #define | CCX_ISOTP_TX_FC_TABLE_ENTRY_EX(isotp_tx_ptr, fc_can_id, ide_flag, frame_format) |
Typedefs | |
| typedef uint32_t | CCX_ISOTP_Length_t |
| typedef struct CCX_ISOTP_TX_t | CCX_ISOTP_TX_t |
| typedef struct CCX_ISOTP_RX_t | CCX_ISOTP_RX_t |
Enumerations | |
| enum | CCX_ISOTP_PCI_t { CCX_ISOTP_PCI_SF = 0x00 , CCX_ISOTP_PCI_FF = 0x10 , CCX_ISOTP_PCI_CF = 0x20 , CCX_ISOTP_PCI_FC = 0x30 } |
| ISO-TP length type. More... | |
| enum | CCX_ISOTP_LengthFormat_t { CCX_ISOTP_LENGTH_FORMAT_STANDARD = 0 , CCX_ISOTP_LENGTH_FORMAT_EXTENDED } |
| enum | CCX_ISOTP_TxDL_t { CCX_ISOTP_TX_DL_8 = 8 , CCX_ISOTP_TX_DL_12 = 12 , CCX_ISOTP_TX_DL_16 = 16 , CCX_ISOTP_TX_DL_20 = 20 , CCX_ISOTP_TX_DL_24 = 24 , CCX_ISOTP_TX_DL_32 = 32 , CCX_ISOTP_TX_DL_48 = 48 , CCX_ISOTP_TX_DL_64 = 64 } |
| enum | CCX_ISOTP_FC_FS_t { CCX_ISOTP_FC_CTS = 0x00 , CCX_ISOTP_FC_WAIT = 0x01 , CCX_ISOTP_FC_OVFLW = 0x02 } |
| Legal CAN FD link-layer payload sizes for ISO-TP sessions. More... | |
| enum | CCX_ISOTP_Status_t { CCX_ISOTP_OK = 0 , CCX_ISOTP_ERROR_NULL_PTR , CCX_ISOTP_ERROR_INVALID_ARG , CCX_ISOTP_ERROR_TIMEOUT_FC , CCX_ISOTP_ERROR_TIMEOUT = CCX_ISOTP_ERROR_TIMEOUT_FC , CCX_ISOTP_ERROR_OVERFLOW , CCX_ISOTP_ERROR_BUSY , CCX_ISOTP_ERROR_SEQUENCE , CCX_ISOTP_ERROR_BUFFER_TOO_SMALL , CCX_ISOTP_ERROR_ABORTED , CCX_ISOTP_ERROR_WAIT_EXCEEDED , CCX_ISOTP_ERROR_TIMEOUT_CF_TX , CCX_ISOTP_ERROR_TIMEOUT_CF_RX , CCX_ISOTP_ERROR_MISSING_TIMEBASE , CCX_ISOTP_ERROR_FD_NOT_SUPPORTED } |
| ISO-TP error codes. | |
| enum | CCX_ISOTP_TX_State_t { CCX_ISOTP_TX_STATE_IDLE = 0 , CCX_ISOTP_TX_STATE_WAIT_FC , CCX_ISOTP_TX_STATE_SENDING_CF } |
| ISO-TP TX state machine states. | |
| enum | CCX_ISOTP_RX_State_t { CCX_ISOTP_RX_STATE_IDLE = 0 , CCX_ISOTP_RX_STATE_RECEIVING_CF } |
| ISO-TP RX state machine states. | |
| enum | CCX_ISOTP_PaddingEnable_t { CCX_ISOTP_PADDING_DISABLED = 0 , CCX_ISOTP_PADDING_ENABLED = 1 } |
Functions | |
| void | CCX_ISOTP_TX_Config_Init (CCX_ISOTP_TX_Config_t *Config, uint32_t TxID, uint8_t IDE_TxID, CCX_TIME_t N_Bs, CCX_TIME_t N_Cs, CCX_ISOTP_Padding_t Padding, void *UserData, void(*OnTransmitComplete)(CCX_ISOTP_TX_t *Instance, void *UserData), void(*OnError)(CCX_ISOTP_TX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData)) |
| Initialize ISO-TP TX configuration with defaults. | |
| void | CCX_ISOTP_TX_Config_InitFD (CCX_ISOTP_TX_Config_t *Config, uint32_t TxID, uint8_t IDE_TxID, CCX_frame_format_t FrameFormat, uint8_t TxDL, CCX_TIME_t N_Bs, CCX_TIME_t N_Cs, CCX_ISOTP_Padding_t Padding, void *UserData, void(*OnTransmitComplete)(CCX_ISOTP_TX_t *Instance, void *UserData), void(*OnError)(CCX_ISOTP_TX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData)) |
| Initialize ISO-TP TX FD configuration with defaults. | |
| CCX_ISOTP_Status_t | CCX_ISOTP_TX_Init (CCX_ISOTP_TX_t *Instance, CCX_instance_t *CanInstance, const CCX_ISOTP_TX_Config_t *Config) |
| Initialize ISO-TP TX instance. | |
| CCX_ISOTP_Status_t | CCX_ISOTP_TX_Abort (CCX_ISOTP_TX_t *Instance) |
| Abort an active ISO-TP TX transfer. | |
| CCX_ISOTP_Status_t | CCX_ISOTP_Transmit (CCX_ISOTP_TX_t *Instance, const uint8_t *Data, CCX_ISOTP_Length_t Length) |
| Transmit data using ISO-TP. | |
| void | CCX_ISOTP_TX_Poll (CCX_ISOTP_TX_t *Instance) |
| Poll ISO-TP TX instance (call periodically from main loop). | |
| void | CCX_ISOTP_TX_FC_Parser (const CCX_instance_t *CanInstance, CCX_message_t *Msg, uint16_t Slot, void *UserData) |
| Parser function for Flow Control frames (for TX side). | |
| void | CCX_ISOTP_RX_Config_Init (CCX_ISOTP_RX_Config_t *Config, uint32_t TxID, uint8_t IDE_TxID, uint8_t BS, uint8_t STmin, CCX_TIME_t N_Cr, uint8_t *RxBuffer, CCX_ISOTP_Length_t RxBufferSize, CCX_ISOTP_Padding_t Padding, CCX_ISOTP_Length_t ProgressCallbackInterval, void *UserData, void(*OnReceiveStart)(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t TotalLength, void *UserData), void(*OnReceiveComplete)(CCX_ISOTP_RX_t *Instance, const uint8_t *Data, CCX_ISOTP_Length_t Length, void *UserData), void(*OnReceiveProgress)(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t BytesReceived, CCX_ISOTP_Length_t TotalLength, void *UserData), void(*OnError)(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData)) |
| Initialize ISO-TP RX configuration with defaults. | |
| void | CCX_ISOTP_RX_Config_InitFD (CCX_ISOTP_RX_Config_t *Config, uint32_t TxID, uint8_t IDE_TxID, CCX_frame_format_t FrameFormat, uint8_t FC_TxDL, uint8_t BS, uint8_t STmin, CCX_TIME_t N_Cr, uint8_t *RxBuffer, CCX_ISOTP_Length_t RxBufferSize, CCX_ISOTP_Padding_t Padding, CCX_ISOTP_Length_t ProgressCallbackInterval, void *UserData, void(*OnReceiveStart)(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t TotalLength, void *UserData), void(*OnReceiveComplete)(CCX_ISOTP_RX_t *Instance, const uint8_t *Data, CCX_ISOTP_Length_t Length, void *UserData), void(*OnReceiveProgress)(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t BytesReceived, CCX_ISOTP_Length_t TotalLength, void *UserData), void(*OnError)(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData)) |
| Initialize ISO-TP RX FD configuration with defaults. | |
| CCX_ISOTP_Status_t | CCX_ISOTP_RX_Init (CCX_ISOTP_RX_t *Instance, CCX_instance_t *CanInstance, const CCX_ISOTP_RX_Config_t *Config) |
| Initialize ISO-TP RX instance. | |
| CCX_ISOTP_Status_t | CCX_ISOTP_RX_Abort (CCX_ISOTP_RX_t *Instance) |
| Abort an active ISO-TP RX transfer. | |
| void | CCX_ISOTP_RX_Parser (const CCX_instance_t *CanInstance, CCX_message_t *Msg, uint16_t Slot, void *UserData) |
| Parser function for CAN CoreX RX table. | |
| void | CCX_ISOTP_RX_Poll (CCX_ISOTP_RX_t *Instance) |
| Poll ISO-TP RX instance (call periodically from main loop). | |
ISO 15765-2 transport over classic CAN and CAN FD.
| #define CCX_ISOTP_MAX_CLASSIC_DATA_SIZE 4095U |
Maximum ISO-TP payload for classic CAN instances.
Applies to sessions configured with FrameFormat = CCX_FRAME_FORMAT_CLASSIC, even in builds where CCX_ENABLE_CANFD=1.
| #define CCX_ISOTP_MAX_FD_DATA_SIZE UINT32_MAX |
Maximum ISO-TP payload for CAN FD instances.
This limit applies only to ISO-TP sessions configured for FrameFormat = CCX_FRAME_FORMAT_FD or CCX_FRAME_FORMAT_FD_BRS. Override it if the application wants to cap FD transfers below the protocol's 32-bit length field.
| #define CCX_ISOTP_PADDING | ( | byte | ) |
| #define CCX_ISOTP_RX_TABLE_ENTRY | ( | isotp_rx_ptr, | |
| can_id, | |||
| ide_flag ) |
Macro to generate CAN CoreX RX table entry for ISO-TP RX instance.
| isotp_rx_ptr | Pointer to CCX_ISOTP_RX_t instance |
| can_id | CAN ID for receiving ISO-TP data frames |
| ide_flag | 0 = Standard ID (11-bit), 1 = Extended ID (29-bit) |
Note: Uses CCX_DLC_ANY to accept any DLC (wildcard matching in CAN CoreX) and defaults to classic frame format in FD-capable builds.
Usage example: CCX_ISOTP_RX_t isotp_rx; CCX_RX_table_t rx_table[] = { CCX_ISOTP_RX_TABLE_ENTRY(&isotp_rx, 0x123, 0), // Standard ID CCX_ISOTP_RX_TABLE_ENTRY(&isotp_rx, 0x18DA00F1, 1) // Extended ID };
| #define CCX_ISOTP_RX_TABLE_ENTRY_EX | ( | isotp_rx_ptr, | |
| can_id, | |||
| ide_flag, | |||
| frame_format ) |
| #define CCX_ISOTP_TX_FC_TABLE_ENTRY | ( | isotp_tx_ptr, | |
| fc_can_id, | |||
| ide_flag ) |
Macro to generate CAN CoreX RX table entry for ISO-TP TX Flow Control.
| isotp_tx_ptr | Pointer to CCX_ISOTP_TX_t instance |
| fc_can_id | CAN ID for receiving Flow Control frames |
| ide_flag | 0 = Standard ID (11-bit), 1 = Extended ID (29-bit) |
Note: Uses CCX_DLC_ANY - FC can be sent with or without padding. In FD-capable builds this macro defaults to classic frame format.
Usage example: CCX_ISOTP_TX_t isotp_tx; CCX_ISOTP_RX_t isotp_rx; CCX_RX_table_t rx_table[] = {
CCX_ISOTP_RX_TABLE_ENTRY(&isotp_rx, 0x123, 0), // Standard ID CCX_ISOTP_TX_FC_TABLE_ENTRY(&isotp_tx, 0x321, 0) // Standard ID for FC };
| #define CCX_ISOTP_TX_FC_TABLE_ENTRY_EX | ( | isotp_tx_ptr, | |
| fc_can_id, | |||
| ide_flag, | |||
| frame_format ) |
| enum CCX_ISOTP_FC_FS_t |
Legal CAN FD link-layer payload sizes for ISO-TP sessions.
TxDL is used only for FD ISO-TP sessions. Classic ISO-TP sessions always use 8 bytes as the link-layer payload.
ISO-TP Flow Control Flow Status values
| enum CCX_ISOTP_PCI_t |
ISO-TP length type.
In classic-only builds this stays uint16_t. In FD builds it becomes uint32_t, allowing payload lengths above 4095 on FD-configured ISO-TP instances.
ISO-TP frame types (PCI - Protocol Control Information)
| CCX_ISOTP_Status_t CCX_ISOTP_RX_Abort | ( | CCX_ISOTP_RX_t * | Instance | ) |
Abort an active ISO-TP RX transfer.
Resets the RX instance back to IDLE. If a transfer was active, OnError(..., CCX_ISOTP_ERROR_ABORTED, ...) is emitted.
| Instance | Pointer to RX instance |
| void CCX_ISOTP_RX_Config_Init | ( | CCX_ISOTP_RX_Config_t * | Config, |
| uint32_t | TxID, | ||
| uint8_t | IDE_TxID, | ||
| uint8_t | BS, | ||
| uint8_t | STmin, | ||
| CCX_TIME_t | N_Cr, | ||
| uint8_t * | RxBuffer, | ||
| CCX_ISOTP_Length_t | RxBufferSize, | ||
| CCX_ISOTP_Padding_t | Padding, | ||
| CCX_ISOTP_Length_t | ProgressCallbackInterval, | ||
| void * | UserData, | ||
| void(* | OnReceiveStart )(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t TotalLength, void *UserData), | ||
| void(* | OnReceiveComplete )(CCX_ISOTP_RX_t *Instance, const uint8_t *Data, CCX_ISOTP_Length_t Length, void *UserData), | ||
| void(* | OnReceiveProgress )(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t BytesReceived, CCX_ISOTP_Length_t TotalLength, void *UserData), | ||
| void(* | OnError )(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData) ) |
Initialize ISO-TP RX configuration with defaults.
Fills Config with a classic/no-padding configuration and library defaults for fields that can be inferred or safely defaulted. Callers may override any fields after initialization and before CCX_ISOTP_RX_Init().
| Config | Pointer to RX configuration to initialize |
| TxID | CAN ID for transmitting Flow Control |
| IDE_TxID | CAN identifier type for TxID |
| BS | Block Size to request in FC |
| STmin | Separation Time minimum to request in FC |
| N_Cr | Timeout between received CF in base ticks |
| RxBuffer | Buffer for received data |
| RxBufferSize | Size of RX buffer |
| Padding | Padding configuration |
| ProgressCallbackInterval | Call progress callback every N newly received bytes (0 = disabled) |
| UserData | User context pointer passed to callbacks |
| OnReceiveStart | Start callback |
| OnReceiveComplete | Completion callback |
| OnReceiveProgress | Progress callback |
| OnError | Error callback |
| void CCX_ISOTP_RX_Config_InitFD | ( | CCX_ISOTP_RX_Config_t * | Config, |
| uint32_t | TxID, | ||
| uint8_t | IDE_TxID, | ||
| CCX_frame_format_t | FrameFormat, | ||
| uint8_t | FC_TxDL, | ||
| uint8_t | BS, | ||
| uint8_t | STmin, | ||
| CCX_TIME_t | N_Cr, | ||
| uint8_t * | RxBuffer, | ||
| CCX_ISOTP_Length_t | RxBufferSize, | ||
| CCX_ISOTP_Padding_t | Padding, | ||
| CCX_ISOTP_Length_t | ProgressCallbackInterval, | ||
| void * | UserData, | ||
| void(* | OnReceiveStart )(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t TotalLength, void *UserData), | ||
| void(* | OnReceiveComplete )(CCX_ISOTP_RX_t *Instance, const uint8_t *Data, CCX_ISOTP_Length_t Length, void *UserData), | ||
| void(* | OnReceiveProgress )(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Length_t BytesReceived, CCX_ISOTP_Length_t TotalLength, void *UserData), | ||
| void(* | OnError )(CCX_ISOTP_RX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData) ) |
Initialize ISO-TP RX FD configuration with defaults.
Same as CCX_ISOTP_RX_Config_Init(), but also applies the FD-specific receive/session transport fields in one step.
| Config | Pointer to RX configuration to initialize |
| TxID | CAN ID for transmitting Flow Control |
| IDE_TxID | CAN identifier type for TxID |
| FrameFormat | Expected transport format of received ISO-TP frames |
| FC_TxDL | FD link-layer payload size used for transmitted FC frames |
| BS | Block Size to request in FC |
| STmin | Separation Time minimum to request in FC |
| N_Cr | Timeout between received CF in milliseconds |
| RxBuffer | Buffer for received data |
| RxBufferSize | Size of RX buffer |
| Padding | Padding configuration |
| ProgressCallbackInterval | Call progress callback every N newly received bytes (0 = disabled) |
| UserData | User context pointer passed to callbacks |
| OnReceiveStart | Start callback |
| OnReceiveComplete | Completion callback |
| OnReceiveProgress | Progress callback |
| OnError | Error callback |
| CCX_ISOTP_Status_t CCX_ISOTP_RX_Init | ( | CCX_ISOTP_RX_t * | Instance, |
| CCX_instance_t * | CanInstance, | ||
| const CCX_ISOTP_RX_Config_t * | Config ) |
Initialize ISO-TP RX instance.
| Instance | Pointer to RX instance structure |
| CanInstance | Pointer to CAN CoreX instance |
| Config | Pointer to RX configuration |
| void CCX_ISOTP_RX_Parser | ( | const CCX_instance_t * | CanInstance, |
| CCX_message_t * | Msg, | ||
| uint16_t | Slot, | ||
| void * | UserData ) |
Parser function for CAN CoreX RX table.
This function should be called from CAN CoreX RX table parser. Use CCX_ISOTP_RX_TABLE_ENTRY macro to generate RX table entry.
| CanInstance | CAN CoreX instance (unused, for compatibility) |
| Msg | Received CAN message |
| Slot | RX table slot (unused, for compatibility) |
| UserData | ISO-TP RX instance pointer from the RX table entry |
| void CCX_ISOTP_RX_Poll | ( | CCX_ISOTP_RX_t * | Instance | ) |
Poll ISO-TP RX instance (call periodically from main loop).
| Instance | Pointer to RX instance |
| CCX_ISOTP_Status_t CCX_ISOTP_Transmit | ( | CCX_ISOTP_TX_t * | Instance, |
| const uint8_t * | Data, | ||
| CCX_ISOTP_Length_t | Length ) |
Transmit data using ISO-TP.
| Instance | Pointer to TX instance |
| Data | Pointer to data to transmit |
| Length | Length of data in bytes |
| CCX_ISOTP_Status_t CCX_ISOTP_TX_Abort | ( | CCX_ISOTP_TX_t * | Instance | ) |
Abort an active ISO-TP TX transfer.
Resets the TX instance back to IDLE. If a transfer was active, OnError(..., CCX_ISOTP_ERROR_ABORTED, ...) is emitted.
| Instance | Pointer to TX instance |
| void CCX_ISOTP_TX_Config_Init | ( | CCX_ISOTP_TX_Config_t * | Config, |
| uint32_t | TxID, | ||
| uint8_t | IDE_TxID, | ||
| CCX_TIME_t | N_Bs, | ||
| CCX_TIME_t | N_Cs, | ||
| CCX_ISOTP_Padding_t | Padding, | ||
| void * | UserData, | ||
| void(* | OnTransmitComplete )(CCX_ISOTP_TX_t *Instance, void *UserData), | ||
| void(* | OnError )(CCX_ISOTP_TX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData) ) |
Initialize ISO-TP TX configuration with defaults.
Fills Config with a classic/no-padding configuration and library defaults for fields that can be inferred or safely defaulted. Callers may override any fields after initialization and before CCX_ISOTP_TX_Init().
| Config | Pointer to TX configuration to initialize |
| TxID | CAN ID for transmitting data |
| IDE_TxID | CAN identifier type for TxID |
| N_Bs | Timeout for reception of FC after FF/CF in base ticks |
| N_Cs | Timeout between CF transmissions in base ticks |
| Padding | Padding configuration |
| UserData | User context pointer passed to callbacks |
| OnTransmitComplete | Completion callback |
| OnError | Error callback |
| void CCX_ISOTP_TX_Config_InitFD | ( | CCX_ISOTP_TX_Config_t * | Config, |
| uint32_t | TxID, | ||
| uint8_t | IDE_TxID, | ||
| CCX_frame_format_t | FrameFormat, | ||
| uint8_t | TxDL, | ||
| CCX_TIME_t | N_Bs, | ||
| CCX_TIME_t | N_Cs, | ||
| CCX_ISOTP_Padding_t | Padding, | ||
| void * | UserData, | ||
| void(* | OnTransmitComplete )(CCX_ISOTP_TX_t *Instance, void *UserData), | ||
| void(* | OnError )(CCX_ISOTP_TX_t *Instance, CCX_ISOTP_Status_t Error, void *UserData) ) |
Initialize ISO-TP TX FD configuration with defaults.
Same as CCX_ISOTP_TX_Config_Init(), but also applies the FD-specific transport fields in one step.
| Config | Pointer to TX configuration to initialize |
| TxID | CAN ID for transmitting data |
| IDE_TxID | CAN identifier type for TxID |
| FrameFormat | Session transport format: CCX_FRAME_FORMAT_FD or CCX_FRAME_FORMAT_FD_BRS |
| TxDL | FD link-layer payload size |
| N_Bs | Timeout for reception of FC after FF/CF in milliseconds |
| N_Cs | Timeout between CF transmissions in milliseconds |
| Padding | Padding configuration |
| UserData | User context pointer passed to callbacks |
| OnTransmitComplete | Completion callback |
| OnError | Error callback |
| void CCX_ISOTP_TX_FC_Parser | ( | const CCX_instance_t * | CanInstance, |
| CCX_message_t * | Msg, | ||
| uint16_t | Slot, | ||
| void * | UserData ) |
Parser function for Flow Control frames (for TX side).
This function should be called from CAN CoreX RX table parser. Use CCX_ISOTP_TX_FC_TABLE_ENTRY macro to generate RX table entry.
| CanInstance | CAN CoreX instance (unused, for compatibility) |
| Msg | Received CAN message (Flow Control) |
| Slot | RX table slot (unused, for compatibility) |
| UserData | ISO-TP TX instance pointer from the RX table entry |
| CCX_ISOTP_Status_t CCX_ISOTP_TX_Init | ( | CCX_ISOTP_TX_t * | Instance, |
| CCX_instance_t * | CanInstance, | ||
| const CCX_ISOTP_TX_Config_t * | Config ) |
Initialize ISO-TP TX instance.
| Instance | Pointer to TX instance structure |
| CanInstance | Pointer to CAN CoreX instance |
| Config | Pointer to TX configuration |
| void CCX_ISOTP_TX_Poll | ( | CCX_ISOTP_TX_t * | Instance | ) |
Poll ISO-TP TX instance (call periodically from main loop).
| Instance | Pointer to TX instance |