|
CAN CoreX 2.3.1
Table-driven CAN, CAN FD, ISO-TP, network simulation, and bus monitoring library
|
ISO-TP transport layer public API. More...
#include "can_corex.h"Go to the source code of this file.
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-TP transport layer public API.