iso14229 0.9.0
ISO14229-1 (UDS) C Library
|
ISO14229-1 (UDS) library. More...
#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
Go to the source code of this file.
Classes | |
struct | UDSSDU_t |
Service data unit (SDU) More... | |
struct | UDSTp_t |
UDS Transport layer. More... | |
struct | UDSClient_t |
UDS client structure. More... | |
struct | SecurityAccessResponse |
Security access response structure. More... | |
struct | RequestDownloadResponse |
Request download response structure. More... | |
struct | RoutineControlResponse |
Routine control response structure. More... | |
struct | UDSRDBIVar_t |
Read data by identifier variable structure. More... | |
struct | UDSReq_t |
Server request context. More... | |
struct | UDSServer_t |
UDS server structure. More... | |
struct | UDSDiagSessCtrlArgs_t |
Diagnostic session control arguments. More... | |
struct | UDSECUResetArgs_t |
ECU reset arguments. More... | |
struct | UDSCDIArgs_t |
Clear diagnostic information arguments. More... | |
struct | UDSRDTCIArgs_t |
Read DTC information arguments. More... | |
struct | UDSRDBIArgs_t |
Read data by identifier arguments. More... | |
struct | UDSReadMemByAddrArgs_t |
Read memory by address arguments. More... | |
struct | UDSCommCtrlArgs_t |
Communication control arguments. More... | |
struct | UDSSecAccessRequestSeedArgs_t |
Security access request seed arguments. More... | |
struct | UDSSecAccessValidateKeyArgs_t |
Security access validate key arguments. More... | |
struct | UDSWDBIArgs_t |
Write data by identifier arguments. More... | |
struct | UDSWriteMemByAddrArgs_t |
Write memory by address arguments. More... | |
struct | UDSDDDIArgs_t |
Dynamically define data identifier arguments. More... | |
struct | UDSIOCtrlArgs_t |
Input/output control by identifier arguments. More... | |
struct | UDSRoutineCtrlArgs_t |
Routine control arguments. More... | |
struct | UDSRequestDownloadArgs_t |
Request download arguments. More... | |
struct | UDSRequestUploadArgs_t |
Request upload arguments. More... | |
struct | UDSTransferDataArgs_t |
Transfer data arguments. More... | |
struct | UDSRequestTransferExitArgs_t |
Request transfer exit arguments. More... | |
struct | UDSRequestFileTransferArgs_t |
Request file transfer arguments. More... | |
struct | UDSControlDTCSettingArgs_t |
Control DTC setting arguments. More... | |
struct | UDSLinkCtrlArgs_t |
Link control arguments. More... | |
struct | UDSCustomArgs_t |
Custom service arguments. More... | |
struct | IsoTpPciType |
struct | IsoTpSingleFrame |
struct | IsoTpFirstFrame |
struct | IsoTpConsecutiveFrame |
struct | IsoTpFlowControl |
struct | IsoTpDataArray |
struct | IsoTpCanMessage |
struct | IsoTpLink |
Struct containing the data for linking an application to a CAN instance. The data stored in this struct is used internally and may be used by software programs using this library. More... | |
struct | UDSISOTpC_t |
struct | UDSISOTpCConfig_t |
struct | UDSTpISOTpC_t |
struct | UDSTpIsoTpSock_t |
struct | ISOTPMock_t |
struct | ISOTPMockArgs_t |
Macros | |
#define | UDS_LIB_VERSION "0.9.0" |
#define | UDS_SYS_CUSTOM 0 |
#define | UDS_SYS_UNIX 1 |
#define | UDS_SYS_WINDOWS 2 |
#define | UDS_SYS_ARDUINO 3 |
#define | UDS_SYS_ESP32 4 |
#define | UDS_SYS UDS_SYS_CUSTOM |
#define | UDS_ISOTP_MTU (4095) |
#define | UDS_TP_MTU UDS_ISOTP_MTU |
#define | UDS_SERVER_SEND_BUF_SIZE (UDS_TP_MTU) |
#define | UDS_SERVER_RECV_BUF_SIZE (UDS_TP_MTU) |
#define | UDS_CLIENT_SEND_BUF_SIZE (UDS_TP_MTU) |
#define | UDS_CLIENT_RECV_BUF_SIZE (UDS_TP_MTU) |
#define | UDS_CLIENT_DEFAULT_P2_MS (150U) |
#define | UDS_CLIENT_DEFAULT_P2_STAR_MS (1500U) |
#define | UDS_CLIENT_DEFAULT_S3_MS (2000) |
#define | UDS_SERVER_DEFAULT_P2_MS (50) |
#define | UDS_SERVER_DEFAULT_P2_STAR_MS (5000) |
#define | UDS_SERVER_DEFAULT_S3_MS (5100) |
#define | UDS_SERVER_DEFAULT_POWER_DOWN_TIME_MS (60) |
#define | UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_BOOT_DELAY_MS (1000) |
#define | UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_AUTH_FAIL_DELAY_MS (1000) |
#define | UDS_SERVER_DEFAULT_XFER_DATA_MAX_BLOCKLENGTH (UDS_TP_MTU) |
#define | UDS_CUSTOM_MILLIS 0 |
#define | UDS_TP_NOOP_ADDR (0xFFFFFFFF) |
#define | UDS_LEV_DS_DS 1 |
#define | UDS_LEV_DS_PRGS 2 |
#define | UDS_LEV_DS_EXTDS 3 |
#define | UDS_LEV_DS_SSDS 4 |
#define | UDS_LEV_RT_HR 1 |
0x11 ECU Reset SubFunction = [resetType] ISO14229-1:2020 Table 34 UDS Level Reset Type | |
#define | UDS_LEV_RT_KOFFONR 2 |
#define | UDS_LEV_RT_SR 3 |
#define | UDS_LEV_RT_ERPSD 4 |
#define | UDS_LEV_RT_DRPSD 5 |
#define | UDS_LEV_CTRLTP_ERXTX 0 |
0x28 Communication Control SubFunction = [controlType] ISO14229-1:2020 Table 54 UDS Level Control Type | |
#define | UDS_LEV_CTRLTP_ERXDTX 1 |
#define | UDS_LEV_CTRLTP_DRXETX 2 |
#define | UDS_LEV_CTRLTP_DRXTX 3 |
#define | UDS_CTP_NCM 1 |
0x28 Communication Control communicationType ISO14229-1:2020 Table B.1 | |
#define | UDS_CTP_NWMCM 2 |
#define | UDS_CTP_NWMCM_NCM 3 |
#define | UDS_LEV_RCTP_STR 1 |
0x31 RoutineControl SubFunction = [routineControlType] ISO14229-1:2020 Table 426 | |
#define | UDS_LEV_RCTP_STPR 2 |
#define | UDS_LEV_RCTP_RRR 3 |
#define | UDS_MOOP_ADDFILE 1 |
modeOfOperation parameter used in 0x38 RequestFileTransfer ISO14229-1:2020 Table G.1 | |
#define | UDS_MOOP_DELFILE 2 |
#define | UDS_MOOP_REPLFILE 3 |
#define | UDS_MOOP_RDFILE 4 |
#define | UDS_MOOP_RDDIR 5 |
#define | UDS_MOOP_RSFILE 6 |
#define | UDS_LEV_DTCSTP_ON 1 |
0x85 ControlDTCSetting SubFunction = [dtcSettingType] ISO14229-1:2020 Table 128 | |
#define | UDS_LEV_DTCSTP_OFF 2 |
#define | UDS_LEV_LCTP_VMTWFP 1 |
0x87 LinkControl SubFunction = [linkControlType] ISO14229-1:2020 Table 171 | |
#define | UDS_LEV_LCTP_VMTWSP 2 |
#define | UDS_LEV_LCTP_TM 3 |
#define | UDS_MAX_DIAGNOSTIC_SERVICES 0x7F |
#define | UDS_RESPONSE_SID_OF(request_sid) ((request_sid) + 0x40) |
#define | UDS_REQUEST_SID_OF(response_sid) ((response_sid) - 0x40) |
#define | UDS_NEG_RESP_LEN 3U |
#define | UDS_0X10_REQ_LEN 2U |
#define | UDS_0X10_RESP_LEN 6U |
#define | UDS_0X11_REQ_MIN_LEN 2U |
#define | UDS_0X11_RESP_BASE_LEN 2U |
#define | UDS_0X14_REQ_MIN_LEN 4U |
#define | UDS_0X14_RESP_BASE_LEN 1U |
#define | UDS_0X19_REQ_MIN_LEN 2U |
#define | UDS_0X19_RESP_BASE_LEN 2U |
#define | UDS_0X23_REQ_MIN_LEN 4U |
#define | UDS_0X23_RESP_BASE_LEN 1U |
#define | UDS_0X22_RESP_BASE_LEN 1U |
#define | UDS_0X27_REQ_BASE_LEN 2U |
#define | UDS_0X27_RESP_BASE_LEN 2U |
#define | UDS_0X28_REQ_BASE_LEN 3U |
#define | UDS_0X28_RESP_LEN 2U |
#define | UDS_0X2C_REQ_MIN_LEN 2U |
#define | UDS_0X2C_RESP_BASE_LEN 2U |
#define | UDS_0X2E_REQ_BASE_LEN 3U |
#define | UDS_0X2E_REQ_MIN_LEN 4U |
#define | UDS_0X2E_RESP_LEN 3U |
#define | UDS_0X2F_REQ_MIN_LEN 4U |
#define | UDS_0X2F_RESP_BASE_LEN 4U |
#define | UDS_0X31_REQ_MIN_LEN 4U |
#define | UDS_0X31_RESP_MIN_LEN 4U |
#define | UDS_0X34_REQ_BASE_LEN 3U |
#define | UDS_0X34_RESP_BASE_LEN 2U |
#define | UDS_0X35_REQ_BASE_LEN 3U |
#define | UDS_0X35_RESP_BASE_LEN 2U |
#define | UDS_0X36_REQ_BASE_LEN 2U |
#define | UDS_0X36_RESP_BASE_LEN 2U |
#define | UDS_0X37_REQ_BASE_LEN 1U |
#define | UDS_0X37_RESP_BASE_LEN 1U |
#define | UDS_0X38_REQ_BASE_LEN 9U |
#define | UDS_0X38_RESP_BASE_LEN 3U |
#define | UDS_0X3D_REQ_MIN_LEN 5U |
#define | UDS_0X3D_RESP_BASE_LEN 2U |
#define | UDS_0X3E_REQ_MIN_LEN 2U |
#define | UDS_0X3E_REQ_MAX_LEN 2U |
#define | UDS_0X3E_RESP_LEN 2U |
#define | UDS_0X85_REQ_BASE_LEN 2U |
#define | UDS_0X85_RESP_LEN 2U |
#define | UDS_0X87_REQ_BASE_LEN 2U |
#define | UDS_0X87_RESP_LEN 2U |
#define | UDS_ASSERT(x) assert(x) |
#define | UDS_LOG_NONE 0 |
logging for bring-up and unit tests. This interface was copied from ESP-IDF. | |
#define | UDS_LOG_ERROR 1 |
#define | UDS_LOG_WARN 2 |
#define | UDS_LOG_INFO 3 |
#define | UDS_LOG_DEBUG 4 |
#define | UDS_LOG_VERBOSE 5 |
#define | UDS_LOG_LEVEL UDS_LOG_NONE |
#define | UDS_LOG_COLOR_E |
#define | UDS_LOG_COLOR_W |
#define | UDS_LOG_COLOR_I |
#define | UDS_LOG_COLOR_D |
#define | UDS_LOG_COLOR_V |
#define | UDS_LOG_RESET_COLOR |
#define | UDS_LOG_FORMAT(letter, format) UDS_LOG_COLOR_##letter #letter " (%" PRIu32 ") %s: " format UDS_LOG_RESET_COLOR "\n" |
#define | UDS_LOGE(tag, format, ...) UDS_LogDummy(tag, format, ##__VA_ARGS__) |
#define | UDS_LOGW(tag, format, ...) UDS_LogDummy(tag, format, ##__VA_ARGS__) |
#define | UDS_LOGI(tag, format, ...) UDS_LogDummy(tag, format, ##__VA_ARGS__) |
#define | UDS_LOGD(tag, format, ...) UDS_LogDummy(tag, format, ##__VA_ARGS__) |
#define | UDS_LOGV(tag, format, ...) UDS_LogDummy(tag, format, ##__VA_ARGS__) |
#define | UDS_LOG_SDU(tag, buffer, buff_len, info) UDS_LogSDUDummy(tag, buffer, buff_len, info) |
#define | UDS_PRINTF_FORMAT(fmt_index, first_arg) |
#define | UDS_SUPPRESS_POS_RESP 0x1 |
#define | UDS_FUNCTIONAL 0x2 |
#define | UDS_IGNORE_SRV_TIMINGS 0x8 |
#define | ISO_TP_USER_SEND_CAN_ARG 1 |
#define | ISOTPC_CONFIG_H |
#define | ISO_TP_DEFAULT_BLOCK_SIZE 8 |
#define | ISO_TP_DEFAULT_ST_MIN_US 0 |
#define | ISO_TP_MAX_WFT_NUMBER 1 |
#define | ISO_TP_DEFAULT_RESPONSE_TIMEOUT_US 100000 |
#define | ISO_TP_FRAME_PADDING_VALUE 0xAA |
#define | ISOTPC_USER_DEFINITIONS_H |
#define | ISOTP_RET_OK 0 |
#define | ISOTP_RET_ERROR -1 |
#define | ISOTP_RET_INPROGRESS -2 |
#define | ISOTP_RET_OVERFLOW -3 |
#define | ISOTP_RET_WRONG_SN -4 |
#define | ISOTP_RET_NO_DATA -5 |
#define | ISOTP_RET_TIMEOUT -6 |
#define | ISOTP_RET_LENGTH -7 |
#define | ISOTP_RET_NOSPACE -8 |
#define | IsoTpTimeAfter(a, b) ((int32_t)((int32_t)(b) - (int32_t)(a)) < 0) |
#define | ISOTP_INVALID_BS 0xFFFF |
#define | ISOTP_PROTOCOL_RESULT_OK 0 |
#define | ISOTP_PROTOCOL_RESULT_TIMEOUT_A -1 |
#define | ISOTP_PROTOCOL_RESULT_TIMEOUT_BS -2 |
#define | ISOTP_PROTOCOL_RESULT_TIMEOUT_CR -3 |
#define | ISOTP_PROTOCOL_RESULT_WRONG_SN -4 |
#define | ISOTP_PROTOCOL_RESULT_INVALID_FS -5 |
#define | ISOTP_PROTOCOL_RESULT_UNEXP_PDU -6 |
#define | ISOTP_PROTOCOL_RESULT_WFT_OVRN -7 |
#define | ISOTP_PROTOCOL_RESULT_BUFFER_OVFLW -8 |
#define | ISOTP_PROTOCOL_RESULT_ERROR -9 |
#define | ISOTPC_USER_H |
#define | ISOTPC_H |
Typedefs | |
typedef uint32_t | UDSTpStatus_t |
typedef uint8_t | UDSTpAddr_t |
typedef int | UDS_LogLevel_t |
Enumerations | |
enum | UDSTpStatusFlags { UDS_TP_IDLE = 0x0000 , UDS_TP_SEND_IN_PROGRESS = 0x0001 , UDS_TP_RECV_COMPLETE = 0x0002 , UDS_TP_ERR = 0x0004 } |
enum | UDS_A_Mtype_t { UDS_A_MTYPE_DIAG = 0 , UDS_A_MTYPE_REMOTE_DIAG , UDS_A_MTYPE_SECURE_DIAG , UDS_A_MTYPE_SECURE_REMOTE_DIAG } |
enum | UDS_A_TA_Type_t { UDS_A_TA_TYPE_PHYSICAL = 0 , UDS_A_TA_TYPE_FUNCTIONAL } |
enum | UDSEvent_t { UDS_EVT_Err , UDS_EVT_DiagSessCtrl , UDS_EVT_EcuReset , UDS_EVT_ClearDiagnosticInfo , UDS_EVT_ReadDTCInformation , UDS_EVT_ReadDataByIdent , UDS_EVT_ReadMemByAddr , UDS_EVT_CommCtrl , UDS_EVT_SecAccessRequestSeed , UDS_EVT_SecAccessValidateKey , UDS_EVT_WriteDataByIdent , UDS_EVT_WriteMemByAddr , UDS_EVT_DynamicDefineDataId , UDS_EVT_IOControl , UDS_EVT_RoutineCtrl , UDS_EVT_RequestDownload , UDS_EVT_RequestUpload , UDS_EVT_TransferData , UDS_EVT_RequestTransferExit , UDS_EVT_SessionTimeout , UDS_EVT_DoScheduledReset , UDS_EVT_RequestFileTransfer , UDS_EVT_ControlDTCSetting , UDS_EVT_LinkControl , UDS_EVT_Custom , UDS_EVT_Poll , UDS_EVT_SendComplete , UDS_EVT_ResponseReceived , UDS_EVT_Idle , UDS_EVT_MAX } |
UDS events. More... | |
enum | UDSErr_t { UDS_FAIL = -1 , UDS_OK = 0 , UDS_PositiveResponse = 0 , UDS_NRC_GeneralReject = 0x10 , UDS_NRC_ServiceNotSupported = 0x11 , UDS_NRC_SubFunctionNotSupported = 0x12 , UDS_NRC_IncorrectMessageLengthOrInvalidFormat = 0x13 , UDS_NRC_ResponseTooLong = 0x14 , UDS_NRC_BusyRepeatRequest = 0x21 , UDS_NRC_ConditionsNotCorrect = 0x22 , UDS_NRC_RequestSequenceError = 0x24 , UDS_NRC_NoResponseFromSubnetComponent = 0x25 , UDS_NRC_FailurePreventsExecutionOfRequestedAction = 0x26 , UDS_NRC_RequestOutOfRange = 0x31 , UDS_NRC_SecurityAccessDenied = 0x33 , UDS_NRC_AuthenticationRequired = 0x34 , UDS_NRC_InvalidKey = 0x35 , UDS_NRC_ExceedNumberOfAttempts = 0x36 , UDS_NRC_RequiredTimeDelayNotExpired = 0x37 , UDS_NRC_SecureDataTransmissionRequired = 0x38 , UDS_NRC_SecureDataTransmissionNotAllowed = 0x39 , UDS_NRC_SecureDataVerificationFailed = 0x3A , UDS_NRC_CertficateVerificationFailedInvalidTimePeriod = 0x50 , UDS_NRC_CertficateVerificationFailedInvalidSignature = 0x51 , UDS_NRC_CertficateVerificationFailedInvalidChainOfTrust = 0x52 , UDS_NRC_CertficateVerificationFailedInvalidType = 0x53 , UDS_NRC_CertficateVerificationFailedInvalidFormat = 0x54 , UDS_NRC_CertficateVerificationFailedInvalidContent = 0x55 , UDS_NRC_CertficateVerificationFailedInvalidScope = 0x56 , UDS_NRC_CertficateVerificationFailedInvalidCertificate = 0x57 , UDS_NRC_OwnershipVerificationFailed = 0x58 , UDS_NRC_ChallengeCalculationFailed = 0x59 , UDS_NRC_SettingAccessRightsFailed = 0x5A , UDS_NRC_SessionKeyCreationOrDerivationFailed = 0x5B , UDS_NRC_ConfigurationDataUsageFailed = 0x5C , UDS_NRC_DeAuthenticationFailed = 0x5D , UDS_NRC_UploadDownloadNotAccepted = 0x70 , UDS_NRC_TransferDataSuspended = 0x71 , UDS_NRC_GeneralProgrammingFailure = 0x72 , UDS_NRC_WrongBlockSequenceCounter = 0x73 , UDS_NRC_RequestCorrectlyReceived_ResponsePending = 0x78 , UDS_NRC_SubFunctionNotSupportedInActiveSession = 0x7E , UDS_NRC_ServiceNotSupportedInActiveSession = 0x7F , UDS_NRC_RpmTooHigh = 0x81 , UDS_NRC_RpmTooLow = 0x82 , UDS_NRC_EngineIsRunning = 0x83 , UDS_NRC_EngineIsNotRunning = 0x84 , UDS_NRC_EngineRunTimeTooLow = 0x85 , UDS_NRC_TemperatureTooHigh = 0x86 , UDS_NRC_TemperatureTooLow = 0x87 , UDS_NRC_VehicleSpeedTooHigh = 0x88 , UDS_NRC_VehicleSpeedTooLow = 0x89 , UDS_NRC_ThrottlePedalTooHigh = 0x8A , UDS_NRC_ThrottlePedalTooLow = 0x8B , UDS_NRC_TransmissionRangeNotInNeutral = 0x8C , UDS_NRC_TransmissionRangeNotInGear = 0x8D , UDS_NRC_BrakeSwitchNotClosed = 0x8F , UDS_NRC_ShifterLeverNotInPark = 0x90 , UDS_NRC_TorqueConverterClutchLocked = 0x91 , UDS_NRC_VoltageTooHigh = 0x92 , UDS_NRC_VoltageTooLow = 0x93 , UDS_NRC_ResourceTemporarilyNotAvailable = 0x94 , UDS_ERR_TIMEOUT = 0x100 , UDS_ERR_DID_MISMATCH , UDS_ERR_SID_MISMATCH , UDS_ERR_SUBFUNCTION_MISMATCH , UDS_ERR_TPORT , UDS_ERR_RESP_TOO_SHORT , UDS_ERR_BUFSIZ , UDS_ERR_INVALID_ARG , UDS_ERR_BUSY , UDS_ERR_MISUSE } |
enum | UDSDiagnosticServiceId { kSID_DIAGNOSTIC_SESSION_CONTROL = 0x10 , kSID_ECU_RESET = 0x11 , kSID_CLEAR_DIAGNOSTIC_INFORMATION = 0x14 , kSID_READ_DTC_INFORMATION = 0x19 , kSID_READ_DATA_BY_IDENTIFIER = 0x22 , kSID_READ_MEMORY_BY_ADDRESS = 0x23 , kSID_READ_SCALING_DATA_BY_IDENTIFIER = 0x24 , kSID_SECURITY_ACCESS = 0x27 , kSID_COMMUNICATION_CONTROL = 0x28 , kSID_READ_PERIODIC_DATA_BY_IDENTIFIER = 0x2A , kSID_DYNAMICALLY_DEFINE_DATA_IDENTIFIER = 0x2C , kSID_WRITE_DATA_BY_IDENTIFIER = 0x2E , kSID_IO_CONTROL_BY_IDENTIFIER = 0x2F , kSID_ROUTINE_CONTROL = 0x31 , kSID_REQUEST_DOWNLOAD = 0x34 , kSID_REQUEST_UPLOAD = 0x35 , kSID_TRANSFER_DATA = 0x36 , kSID_REQUEST_TRANSFER_EXIT = 0x37 , kSID_REQUEST_FILE_TRANSFER = 0x38 , kSID_WRITE_MEMORY_BY_ADDRESS = 0x3D , kSID_TESTER_PRESENT = 0x3E , kSID_ACCESS_TIMING_PARAMETER = 0x83 , kSID_SECURED_DATA_TRANSMISSION = 0x84 , kSID_CONTROL_DTC_SETTING = 0x85 , kSID_RESPONSE_ON_EVENT = 0x86 , kSID_LINK_CONTROL = 0x87 } |
enum | IsoTpSendStatusTypes { ISOTP_SEND_STATUS_IDLE , ISOTP_SEND_STATUS_INPROGRESS , ISOTP_SEND_STATUS_ERROR } |
enum | IsoTpReceiveStatusTypes { ISOTP_RECEIVE_STATUS_IDLE , ISOTP_RECEIVE_STATUS_INPROGRESS , ISOTP_RECEIVE_STATUS_FULL } |
enum | IsoTpProtocolControlInformation { ISOTP_PCI_TYPE_SINGLE = 0x0 , ISOTP_PCI_TYPE_FIRST_FRAME = 0x1 , TSOTP_PCI_TYPE_CONSECUTIVE_FRAME = 0x2 , ISOTP_PCI_TYPE_FLOW_CONTROL_FRAME = 0x3 } |
enum | IsoTpFlowStatus { PCI_FLOW_STATUS_CONTINUE = 0x0 , PCI_FLOW_STATUS_WAIT = 0x1 , PCI_FLOW_STATUS_OVERFLOW = 0x2 } |
Functions | |
ssize_t | UDSTpSend (UDSTp_t *hdl, const uint8_t *buf, ssize_t len, UDSSDU_t *info) |
ssize_t | UDSTpRecv (UDSTp_t *hdl, uint8_t *buf, size_t bufsize, UDSSDU_t *info) |
UDSTpStatus_t | UDSTpPoll (UDSTp_t *hdl) |
uint32_t | UDSMillis (void) |
Get time in milliseconds. | |
bool | UDSSecurityAccessLevelIsReserved (uint8_t securityLevel) |
Check if a security level is reserved per ISO14229-1:2020 Table 42. | |
bool | UDSErrIsNRC (UDSErr_t err) |
const char * | UDSErrToStr (UDSErr_t err) |
const char * | UDSEventToStr (UDSEvent_t evt) |
UDSErr_t | UDSClientInit (UDSClient_t *client) |
UDSErr_t | UDSClientPoll (UDSClient_t *client) |
UDSErr_t | UDSSendBytes (UDSClient_t *client, const uint8_t *data, uint16_t size) |
UDSErr_t | UDSSendECUReset (UDSClient_t *client, uint8_t type) |
UDSErr_t | UDSSendDiagSessCtrl (UDSClient_t *client, uint8_t mode) |
UDSErr_t | UDSSendSecurityAccess (UDSClient_t *client, uint8_t level, uint8_t *data, uint16_t size) |
UDSErr_t | UDSSendCommCtrl (UDSClient_t *client, uint8_t ctrl, uint8_t comm) |
UDSErr_t | UDSSendRDBI (UDSClient_t *client, const uint16_t *didList, const uint16_t numDataIdentifiers) |
UDSErr_t | UDSSendWDBI (UDSClient_t *client, uint16_t dataIdentifier, const uint8_t *data, uint16_t size) |
UDSErr_t | UDSSendTesterPresent (UDSClient_t *client) |
UDSErr_t | UDSSendRoutineCtrl (UDSClient_t *client, uint8_t type, uint16_t routineIdentifier, const uint8_t *data, uint16_t size) |
UDSErr_t | UDSSendRequestDownload (UDSClient_t *client, uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, size_t memoryAddress, size_t memorySize) |
UDSErr_t | UDSSendRequestUpload (UDSClient_t *client, uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, size_t memoryAddress, size_t memorySize) |
UDSErr_t | UDSSendTransferData (UDSClient_t *client, uint8_t blockSequenceCounter, const uint16_t blockLength, const uint8_t *data, uint16_t size) |
UDSErr_t | UDSSendTransferDataStream (UDSClient_t *client, uint8_t blockSequenceCounter, const uint16_t blockLength, FILE *fd) |
UDSErr_t | UDSSendRequestTransferExit (UDSClient_t *client) |
UDSErr_t | UDSSendRequestFileTransfer (UDSClient_t *client, uint8_t mode, const char *filePath, uint8_t dataFormatIdentifier, uint8_t fileSizeParameterLength, size_t fileSizeUncompressed, size_t fileSizeCompressed) |
UDSErr_t | UDSCtrlDTCSetting (UDSClient_t *client, uint8_t dtcSettingType, uint8_t *dtcSettingControlOptionRecord, uint16_t len) |
UDSErr_t | UDSUnpackRDBIResponse (UDSClient_t *client, UDSRDBIVar_t *vars, uint16_t numVars) |
UDSErr_t | UDSUnpackSecurityAccessResponse (const UDSClient_t *client, struct SecurityAccessResponse *resp) |
UDSErr_t | UDSUnpackRequestDownloadResponse (const UDSClient_t *client, struct RequestDownloadResponse *resp) |
UDSErr_t | UDSUnpackRoutineControlResponse (const UDSClient_t *client, struct RoutineControlResponse *resp) |
UDSErr_t | UDSConfigDownload (UDSClient_t *client, uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, size_t memoryAddress, size_t memorySize, FILE *fd) |
UDSErr_t | UDSServerInit (UDSServer_t *srv) |
void | UDSServerPoll (UDSServer_t *srv) |
void | isotp_user_debug (const char *message,...) |
user implemented, print debug message | |
int | isotp_user_send_can (const uint32_t arbitration_id, const uint8_t *data, const uint8_t size, void *arg) |
user implemented, send can message. should return ISOTP_RET_OK when success. | |
uint32_t | isotp_user_get_us (void) |
user implemented, gets the amount of time passed since the last call in microseconds | |
void | isotp_init_link (IsoTpLink *link, uint32_t sendid, uint8_t *sendbuf, uint16_t sendbufsize, uint8_t *recvbuf, uint16_t recvbufsize) |
Initialises the ISO-TP library. | |
void | isotp_poll (IsoTpLink *link) |
Polling function; call this function periodically to handle timeouts, send consecutive frames, etc. | |
void | isotp_on_can_message (IsoTpLink *link, const uint8_t *data, uint8_t len) |
Handles incoming CAN messages. Determines whether an incoming message is a valid ISO-TP frame or not and handles it accordingly. | |
int | isotp_send (IsoTpLink *link, const uint8_t payload[], uint16_t size) |
Sends ISO-TP frames via CAN, using the ID set in the initialising function. | |
int | isotp_send_with_id (IsoTpLink *link, uint32_t id, const uint8_t payload[], uint16_t size) |
See isotp_send, with the exception that this function is used only for functional addressing. | |
int | isotp_receive (IsoTpLink *link, uint8_t *payload, const uint16_t payload_size, uint16_t *out_size) |
Receives and parses the received data and copies the parsed data in to the internal buffer. | |
UDSErr_t | UDSISOTpCInit (UDSISOTpC_t *tp, const UDSISOTpCConfig_t *cfg) |
void | UDSISOTpCDeinit (UDSISOTpC_t *tp) |
UDSErr_t | UDSTpISOTpCInit (UDSTpISOTpC_t *tp, const char *ifname, uint32_t source_addr, uint32_t target_addr, uint32_t source_addr_func, uint32_t target_addr_func) |
void | UDSTpISOTpCDeinit (UDSTpISOTpC_t *tp) |
UDSErr_t | UDSTpIsoTpSockInitServer (UDSTpIsoTpSock_t *tp, const char *ifname, uint32_t source_addr, uint32_t target_addr, uint32_t source_addr_func) |
UDSErr_t | UDSTpIsoTpSockInitClient (UDSTpIsoTpSock_t *tp, const char *ifname, uint32_t source_addr, uint32_t target_addr, uint32_t target_addr_func) |
void | UDSTpIsoTpSockDeinit (UDSTpIsoTpSock_t *tp) |
UDSTp_t * | ISOTPMockNew (const char *name, ISOTPMockArgs_t *args) |
Create a mock transport. It is connected by default to a broadcast network of all other mock transports in the same process. | |
void | ISOTPMockFree (UDSTp_t *tp) |
void | ISOTPMockLogToFile (const char *filename) |
write all messages to a file | |
void | ISOTPMockLogToStdout (void) |
void | ISOTPMockReset (void) |
clear all transports and close the log file | |
#define ISO_TP_DEFAULT_BLOCK_SIZE 8 |
Definition at line 1187 of file iso14229.h.
#define ISO_TP_DEFAULT_RESPONSE_TIMEOUT_US 100000 |
Definition at line 1202 of file iso14229.h.
#define ISO_TP_DEFAULT_ST_MIN_US 0 |
Definition at line 1192 of file iso14229.h.
#define ISO_TP_FRAME_PADDING_VALUE 0xAA |
Definition at line 1211 of file iso14229.h.
#define ISO_TP_MAX_WFT_NUMBER 1 |
Definition at line 1197 of file iso14229.h.
#define ISO_TP_USER_SEND_CAN_ARG 1 |
Definition at line 1180 of file iso14229.h.
#define ISOTP_INVALID_BS 0xFFFF |
Definition at line 1271 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_BUFFER_OVFLW -8 |
Definition at line 1445 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_ERROR -9 |
Definition at line 1446 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_INVALID_FS -5 |
Definition at line 1442 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_OK 0 |
Definition at line 1437 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_TIMEOUT_A -1 |
Definition at line 1438 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_TIMEOUT_BS -2 |
Definition at line 1439 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_TIMEOUT_CR -3 |
Definition at line 1440 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_UNEXP_PDU -6 |
Definition at line 1443 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_WFT_OVRN -7 |
Definition at line 1444 of file iso14229.h.
#define ISOTP_PROTOCOL_RESULT_WRONG_SN -4 |
Definition at line 1441 of file iso14229.h.
#define ISOTP_RET_ERROR -1 |
Definition at line 1258 of file iso14229.h.
#define ISOTP_RET_INPROGRESS -2 |
Definition at line 1259 of file iso14229.h.
#define ISOTP_RET_LENGTH -7 |
Definition at line 1264 of file iso14229.h.
#define ISOTP_RET_NO_DATA -5 |
Definition at line 1262 of file iso14229.h.
#define ISOTP_RET_NOSPACE -8 |
Definition at line 1265 of file iso14229.h.
#define ISOTP_RET_OK 0 |
Definition at line 1257 of file iso14229.h.
#define ISOTP_RET_OVERFLOW -3 |
Definition at line 1260 of file iso14229.h.
#define ISOTP_RET_TIMEOUT -6 |
Definition at line 1263 of file iso14229.h.
#define ISOTP_RET_WRONG_SN -4 |
Definition at line 1261 of file iso14229.h.
#define ISOTPC_CONFIG_H |
Definition at line 1182 of file iso14229.h.
#define ISOTPC_H |
Definition at line 1487 of file iso14229.h.
#define ISOTPC_USER_DEFINITIONS_H |
Definition at line 1222 of file iso14229.h.
#define ISOTPC_USER_H |
Definition at line 1450 of file iso14229.h.
#define IsoTpTimeAfter | ( | a, | |
b | |||
) | ((int32_t)((int32_t)(b) - (int32_t)(a)) < 0) |
Definition at line 1268 of file iso14229.h.
#define UDS_0X10_REQ_LEN 2U |
Definition at line 505 of file iso14229.h.
#define UDS_0X10_RESP_LEN 6U |
Definition at line 506 of file iso14229.h.
#define UDS_0X11_REQ_MIN_LEN 2U |
Definition at line 507 of file iso14229.h.
#define UDS_0X11_RESP_BASE_LEN 2U |
Definition at line 508 of file iso14229.h.
#define UDS_0X14_REQ_MIN_LEN 4U |
Definition at line 509 of file iso14229.h.
#define UDS_0X14_RESP_BASE_LEN 1U |
Definition at line 510 of file iso14229.h.
#define UDS_0X19_REQ_MIN_LEN 2U |
Definition at line 511 of file iso14229.h.
#define UDS_0X19_RESP_BASE_LEN 2U |
Definition at line 512 of file iso14229.h.
#define UDS_0X22_RESP_BASE_LEN 1U |
Definition at line 515 of file iso14229.h.
#define UDS_0X23_REQ_MIN_LEN 4U |
Definition at line 513 of file iso14229.h.
#define UDS_0X23_RESP_BASE_LEN 1U |
Definition at line 514 of file iso14229.h.
#define UDS_0X27_REQ_BASE_LEN 2U |
Definition at line 516 of file iso14229.h.
#define UDS_0X27_RESP_BASE_LEN 2U |
Definition at line 517 of file iso14229.h.
#define UDS_0X28_REQ_BASE_LEN 3U |
Definition at line 518 of file iso14229.h.
#define UDS_0X28_RESP_LEN 2U |
Definition at line 519 of file iso14229.h.
#define UDS_0X2C_REQ_MIN_LEN 2U |
Definition at line 520 of file iso14229.h.
#define UDS_0X2C_RESP_BASE_LEN 2U |
Definition at line 521 of file iso14229.h.
#define UDS_0X2E_REQ_BASE_LEN 3U |
Definition at line 522 of file iso14229.h.
#define UDS_0X2E_REQ_MIN_LEN 4U |
Definition at line 523 of file iso14229.h.
#define UDS_0X2E_RESP_LEN 3U |
Definition at line 524 of file iso14229.h.
#define UDS_0X2F_REQ_MIN_LEN 4U |
Definition at line 525 of file iso14229.h.
#define UDS_0X2F_RESP_BASE_LEN 4U |
Definition at line 526 of file iso14229.h.
#define UDS_0X31_REQ_MIN_LEN 4U |
Definition at line 527 of file iso14229.h.
#define UDS_0X31_RESP_MIN_LEN 4U |
Definition at line 528 of file iso14229.h.
#define UDS_0X34_REQ_BASE_LEN 3U |
Definition at line 529 of file iso14229.h.
#define UDS_0X34_RESP_BASE_LEN 2U |
Definition at line 530 of file iso14229.h.
#define UDS_0X35_REQ_BASE_LEN 3U |
Definition at line 531 of file iso14229.h.
#define UDS_0X35_RESP_BASE_LEN 2U |
Definition at line 532 of file iso14229.h.
#define UDS_0X36_REQ_BASE_LEN 2U |
Definition at line 533 of file iso14229.h.
#define UDS_0X36_RESP_BASE_LEN 2U |
Definition at line 534 of file iso14229.h.
#define UDS_0X37_REQ_BASE_LEN 1U |
Definition at line 535 of file iso14229.h.
#define UDS_0X37_RESP_BASE_LEN 1U |
Definition at line 536 of file iso14229.h.
#define UDS_0X38_REQ_BASE_LEN 9U |
Definition at line 537 of file iso14229.h.
#define UDS_0X38_RESP_BASE_LEN 3U |
Definition at line 538 of file iso14229.h.
#define UDS_0X3D_REQ_MIN_LEN 5U |
Definition at line 539 of file iso14229.h.
#define UDS_0X3D_RESP_BASE_LEN 2U |
Definition at line 540 of file iso14229.h.
#define UDS_0X3E_REQ_MAX_LEN 2U |
Definition at line 542 of file iso14229.h.
#define UDS_0X3E_REQ_MIN_LEN 2U |
Definition at line 541 of file iso14229.h.
#define UDS_0X3E_RESP_LEN 2U |
Definition at line 543 of file iso14229.h.
#define UDS_0X85_REQ_BASE_LEN 2U |
Definition at line 544 of file iso14229.h.
#define UDS_0X85_RESP_LEN 2U |
Definition at line 545 of file iso14229.h.
#define UDS_0X87_REQ_BASE_LEN 2U |
Definition at line 546 of file iso14229.h.
#define UDS_0X87_RESP_LEN 2U |
Definition at line 547 of file iso14229.h.
#define UDS_ASSERT | ( | x | ) | assert(x) |
Definition at line 583 of file iso14229.h.
#define UDS_CLIENT_DEFAULT_P2_MS (150U) |
Definition at line 137 of file iso14229.h.
#define UDS_CLIENT_DEFAULT_P2_STAR_MS (1500U) |
Definition at line 141 of file iso14229.h.
#define UDS_CLIENT_DEFAULT_S3_MS (2000) |
Definition at line 146 of file iso14229.h.
#define UDS_CLIENT_RECV_BUF_SIZE (UDS_TP_MTU) |
Definition at line 133 of file iso14229.h.
#define UDS_CLIENT_SEND_BUF_SIZE (UDS_TP_MTU) |
Definition at line 129 of file iso14229.h.
#define UDS_CTP_NCM 1 |
0x28 Communication Control communicationType ISO14229-1:2020 Table B.1
Definition at line 460 of file iso14229.h.
#define UDS_CTP_NWMCM 2 |
Definition at line 461 of file iso14229.h.
#define UDS_CTP_NWMCM_NCM 3 |
Definition at line 462 of file iso14229.h.
#define UDS_CUSTOM_MILLIS 0 |
Definition at line 200 of file iso14229.h.
#define UDS_FUNCTIONAL 0x2 |
Definition at line 723 of file iso14229.h.
#define UDS_IGNORE_SRV_TIMINGS 0x8 |
Definition at line 724 of file iso14229.h.
#define UDS_ISOTP_MTU (4095) |
ISO-TP Maximum Transmissiable Unit (ISO-15764-2-2004 section 5.3.3)
Definition at line 114 of file iso14229.h.
#define UDS_LEV_CTRLTP_DRXETX 2 |
Definition at line 453 of file iso14229.h.
#define UDS_LEV_CTRLTP_DRXTX 3 |
Definition at line 454 of file iso14229.h.
#define UDS_LEV_CTRLTP_ERXDTX 1 |
Definition at line 452 of file iso14229.h.
#define UDS_LEV_CTRLTP_ERXTX 0 |
0x28 Communication Control SubFunction = [controlType] ISO14229-1:2020 Table 54 UDS Level Control Type
Definition at line 451 of file iso14229.h.
#define UDS_LEV_DS_DS 1 |
Definition at line 430 of file iso14229.h.
#define UDS_LEV_DS_EXTDS 3 |
Definition at line 432 of file iso14229.h.
#define UDS_LEV_DS_PRGS 2 |
Definition at line 431 of file iso14229.h.
#define UDS_LEV_DS_SSDS 4 |
Definition at line 433 of file iso14229.h.
#define UDS_LEV_DTCSTP_OFF 2 |
Definition at line 488 of file iso14229.h.
#define UDS_LEV_DTCSTP_ON 1 |
0x85 ControlDTCSetting SubFunction = [dtcSettingType] ISO14229-1:2020 Table 128
Definition at line 487 of file iso14229.h.
#define UDS_LEV_LCTP_TM 3 |
Definition at line 496 of file iso14229.h.
#define UDS_LEV_LCTP_VMTWFP 1 |
0x87 LinkControl SubFunction = [linkControlType] ISO14229-1:2020 Table 171
Definition at line 494 of file iso14229.h.
#define UDS_LEV_LCTP_VMTWSP 2 |
Definition at line 495 of file iso14229.h.
#define UDS_LEV_RCTP_RRR 3 |
Definition at line 470 of file iso14229.h.
#define UDS_LEV_RCTP_STPR 2 |
Definition at line 469 of file iso14229.h.
#define UDS_LEV_RCTP_STR 1 |
0x31 RoutineControl SubFunction = [routineControlType] ISO14229-1:2020 Table 426
Definition at line 468 of file iso14229.h.
#define UDS_LEV_RT_DRPSD 5 |
Definition at line 444 of file iso14229.h.
#define UDS_LEV_RT_ERPSD 4 |
Definition at line 443 of file iso14229.h.
#define UDS_LEV_RT_HR 1 |
0x11 ECU Reset SubFunction = [resetType] ISO14229-1:2020 Table 34 UDS Level Reset Type
Definition at line 440 of file iso14229.h.
#define UDS_LEV_RT_KOFFONR 2 |
Definition at line 441 of file iso14229.h.
#define UDS_LEV_RT_SR 3 |
Definition at line 442 of file iso14229.h.
#define UDS_LIB_VERSION "0.9.0" |
Definition at line 16 of file iso14229.h.
#define UDS_LOG_COLOR_D |
Definition at line 642 of file iso14229.h.
#define UDS_LOG_COLOR_E |
Definition at line 639 of file iso14229.h.
#define UDS_LOG_COLOR_I |
Definition at line 641 of file iso14229.h.
#define UDS_LOG_COLOR_V |
Definition at line 643 of file iso14229.h.
#define UDS_LOG_COLOR_W |
Definition at line 640 of file iso14229.h.
#define UDS_LOG_DEBUG 4 |
Definition at line 613 of file iso14229.h.
#define UDS_LOG_ERROR 1 |
Definition at line 610 of file iso14229.h.
#define UDS_LOG_FORMAT | ( | letter, | |
format | |||
) | UDS_LOG_COLOR_##letter #letter " (%" PRIu32 ") %s: " format UDS_LOG_RESET_COLOR "\n" |
Definition at line 647 of file iso14229.h.
#define UDS_LOG_INFO 3 |
Definition at line 612 of file iso14229.h.
#define UDS_LOG_LEVEL UDS_LOG_NONE |
Definition at line 619 of file iso14229.h.
#define UDS_LOG_NONE 0 |
logging for bring-up and unit tests. This interface was copied from ESP-IDF.
Definition at line 609 of file iso14229.h.
#define UDS_LOG_RESET_COLOR |
Definition at line 644 of file iso14229.h.
#define UDS_LOG_SDU | ( | tag, | |
buffer, | |||
buff_len, | |||
info | |||
) | UDS_LogSDUDummy(tag, buffer, buff_len, info) |
Definition at line 689 of file iso14229.h.
#define UDS_LOG_VERBOSE 5 |
Definition at line 614 of file iso14229.h.
#define UDS_LOG_WARN 2 |
Definition at line 611 of file iso14229.h.
#define UDS_LOGD | ( | tag, | |
format, | |||
... | |||
) | UDS_LogDummy(tag, format, ##__VA_ARGS__) |
Definition at line 675 of file iso14229.h.
#define UDS_LOGE | ( | tag, | |
format, | |||
... | |||
) | UDS_LogDummy(tag, format, ##__VA_ARGS__) |
Definition at line 654 of file iso14229.h.
#define UDS_LOGI | ( | tag, | |
format, | |||
... | |||
) | UDS_LogDummy(tag, format, ##__VA_ARGS__) |
Definition at line 668 of file iso14229.h.
#define UDS_LOGV | ( | tag, | |
format, | |||
... | |||
) | UDS_LogDummy(tag, format, ##__VA_ARGS__) |
Definition at line 682 of file iso14229.h.
#define UDS_LOGW | ( | tag, | |
format, | |||
... | |||
) | UDS_LogDummy(tag, format, ##__VA_ARGS__) |
Definition at line 661 of file iso14229.h.
#define UDS_MAX_DIAGNOSTIC_SERVICES 0x7F |
Definition at line 499 of file iso14229.h.
#define UDS_MOOP_ADDFILE 1 |
modeOfOperation parameter used in 0x38 RequestFileTransfer ISO14229-1:2020 Table G.1
Definition at line 476 of file iso14229.h.
#define UDS_MOOP_DELFILE 2 |
Definition at line 477 of file iso14229.h.
#define UDS_MOOP_RDDIR 5 |
Definition at line 480 of file iso14229.h.
#define UDS_MOOP_RDFILE 4 |
Definition at line 479 of file iso14229.h.
#define UDS_MOOP_REPLFILE 3 |
Definition at line 478 of file iso14229.h.
#define UDS_MOOP_RSFILE 6 |
Definition at line 481 of file iso14229.h.
#define UDS_NEG_RESP_LEN 3U |
Definition at line 504 of file iso14229.h.
#define UDS_PRINTF_FORMAT | ( | fmt_index, | |
first_arg | |||
) |
Definition at line 696 of file iso14229.h.
#define UDS_REQUEST_SID_OF | ( | response_sid | ) | ((response_sid) - 0x40) |
Definition at line 502 of file iso14229.h.
#define UDS_RESPONSE_SID_OF | ( | request_sid | ) | ((request_sid) + 0x40) |
Definition at line 501 of file iso14229.h.
#define UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_AUTH_FAIL_DELAY_MS (1000) |
Definition at line 189 of file iso14229.h.
#define UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_BOOT_DELAY_MS (1000) |
Definition at line 184 of file iso14229.h.
#define UDS_SERVER_DEFAULT_P2_MS (50) |
Definition at line 153 of file iso14229.h.
#define UDS_SERVER_DEFAULT_P2_STAR_MS (5000) |
Definition at line 158 of file iso14229.h.
#define UDS_SERVER_DEFAULT_POWER_DOWN_TIME_MS (60) |
Definition at line 175 of file iso14229.h.
#define UDS_SERVER_DEFAULT_S3_MS (5100) |
Definition at line 163 of file iso14229.h.
#define UDS_SERVER_DEFAULT_XFER_DATA_MAX_BLOCKLENGTH (UDS_TP_MTU) |
ISO14229-1:2013 Table 396. This parameter is used by the requestDownload positive response message to inform the client how many data bytes (maxNumberOfBlockLength) to include in each TransferData request message from the client.
Definition at line 196 of file iso14229.h.
#define UDS_SERVER_RECV_BUF_SIZE (UDS_TP_MTU) |
Definition at line 125 of file iso14229.h.
#define UDS_SERVER_SEND_BUF_SIZE (UDS_TP_MTU) |
Definition at line 121 of file iso14229.h.
#define UDS_SUPPRESS_POS_RESP 0x1 |
Definition at line 722 of file iso14229.h.
#define UDS_SYS UDS_SYS_CUSTOM |
Definition at line 37 of file iso14229.h.
#define UDS_SYS_ARDUINO 3 |
Definition at line 23 of file iso14229.h.
#define UDS_SYS_CUSTOM 0 |
Definition at line 20 of file iso14229.h.
#define UDS_SYS_ESP32 4 |
Definition at line 24 of file iso14229.h.
#define UDS_SYS_UNIX 1 |
Definition at line 21 of file iso14229.h.
#define UDS_SYS_WINDOWS 2 |
Definition at line 22 of file iso14229.h.
#define UDS_TP_MTU UDS_ISOTP_MTU |
Definition at line 117 of file iso14229.h.
#define UDS_TP_NOOP_ADDR (0xFFFFFFFF) |
Definition at line 248 of file iso14229.h.
typedef int UDS_LogLevel_t |
Definition at line 616 of file iso14229.h.
typedef uint8_t UDSTpAddr_t |
Definition at line 233 of file iso14229.h.
typedef uint32_t UDSTpStatus_t |
Definition at line 219 of file iso14229.h.
enum IsoTpFlowStatus |
Definition at line 1429 of file iso14229.h.
enum IsoTpProtocolControlInformation |
Definition at line 1420 of file iso14229.h.
enum IsoTpReceiveStatusTypes |
Definition at line 1281 of file iso14229.h.
enum IsoTpSendStatusTypes |
Definition at line 1274 of file iso14229.h.
enum UDS_A_Mtype_t |
Definition at line 221 of file iso14229.h.
enum UDS_A_TA_Type_t |
Definition at line 228 of file iso14229.h.
enum UDSDiagnosticServiceId |
Definition at line 549 of file iso14229.h.
enum UDSErr_t |
Definition at line 334 of file iso14229.h.
enum UDSEvent_t |
UDS events.
Events are passed to the server or client callback function along with a pointer to the associated argument structure.
Enumerator | |
---|---|
UDS_EVT_Err | Common event. Argument type: UDSErr_t * |
UDS_EVT_DiagSessCtrl | Server evt 0x10, argtype: UDSDiagSessCtrlArgs_t * |
UDS_EVT_EcuReset | Server evt 0x11, argtype: UDSECUResetArgs_t * |
UDS_EVT_ClearDiagnosticInfo | Server evt 0x14, argtype: UDSCDIArgs_t * |
UDS_EVT_ReadDTCInformation | Server evt 0x19, argtype: UDSRDTCIArgs_t * |
UDS_EVT_ReadDataByIdent | Server evt 0x22, argtype: UDSRDBIArgs_t * |
UDS_EVT_ReadMemByAddr | Server evt 0x23, argtype: UDSReadMemByAddrArgs_t * |
UDS_EVT_CommCtrl | Server evt 0x28, argtype: UDSCommCtrlArgs_t * |
UDS_EVT_SecAccessRequestSeed | Server evt 0x27, argtype: UDSSecAccessRequestSeedArgs_t * |
UDS_EVT_SecAccessValidateKey | Server evt 0x27, argtype: UDSSecAccessValidateKeyArgs_t * |
UDS_EVT_WriteDataByIdent | Server evt 0x2E, argtype: UDSWDBIArgs_t * |
UDS_EVT_WriteMemByAddr | Server evt 0x3D, argtype: UDSWriteMemByAddrArgs_t * |
UDS_EVT_DynamicDefineDataId | Server evt 0x2C, argtype: UDSDDDIArgs_t * |
UDS_EVT_IOControl | Server evt 0x2F, argtype: UDSIOCtrlArgs_t * |
UDS_EVT_RoutineCtrl | Server evt 0x31, argtype: UDSRoutineCtrlArgs_t * |
UDS_EVT_RequestDownload | Server evt 0x34, argtype: UDSRequestDownloadArgs_t * |
UDS_EVT_RequestUpload | Server evt 0x35, argtype: UDSRequestUploadArgs_t * |
UDS_EVT_TransferData | Server evt 0x36, argtype: UDSTransferDataArgs_t * |
UDS_EVT_RequestTransferExit | Server evt 0x37, argtype: UDSRequestTransferExitArgs_t * |
UDS_EVT_SessionTimeout | Server evt 0x38, argtype: NULL |
UDS_EVT_DoScheduledReset | Server evt 0x39, argtype: uint8_t * |
UDS_EVT_RequestFileTransfer | Server evt 0x38, argtype: UDSRequestFileTransferArgs_t * |
UDS_EVT_ControlDTCSetting | Server evt 0x85, argtype: UDSControlDTCSettingArgs_t * |
UDS_EVT_LinkControl | Server evt 0x87, argtype: UDSLinkCtrlArgs_t * |
UDS_EVT_Custom | Server evt other, argtype: UDSCustomArgs_t * |
UDS_EVT_Poll | Client evt: Poll. Argument type: NULL |
UDS_EVT_SendComplete | Client evt: Send complete. Argument type: NULL |
UDS_EVT_ResponseReceived | Client evt: Response received. Argument type: NULL |
UDS_EVT_Idle | Client evt: Idle. Argument type: NULL |
UDS_EVT_MAX | Unused sentinel value |
Definition at line 298 of file iso14229.h.
enum UDSTpStatusFlags |
Definition at line 212 of file iso14229.h.
void isotp_init_link | ( | IsoTpLink * | link, |
uint32_t | sendid, | ||
uint8_t * | sendbuf, | ||
uint16_t | sendbufsize, | ||
uint8_t * | recvbuf, | ||
uint16_t | recvbufsize | ||
) |
Initialises the ISO-TP library.
link | The Struct containing the data for linking an application to a CAN instance. The data stored in this stru... Definition iso14229.h:1504 |
sendid | The ID used to send data to other CAN nodes. |
sendbuf | A pointer to an area in memory which can be used as a buffer for data to be sent. |
sendbufsize | The size of the buffer area. |
recvbuf | A pointer to an area in memory which can be used as a buffer for data to be received. |
recvbufsize | The size of the buffer area. |
Definition at line 4205 of file iso14229.c.
void isotp_on_can_message | ( | IsoTpLink * | link, |
const uint8_t * | data, | ||
uint8_t | len | ||
) |
Handles incoming CAN messages. Determines whether an incoming message is a valid ISO-TP frame or not and handles it accordingly.
link | The instance used for transceiving data. |
data | The data received via CAN. |
len | The length of the data received. |
Definition at line 4036 of file iso14229.c.
void isotp_poll | ( | IsoTpLink * | link | ) |
Polling function; call this function periodically to handle timeouts, send consecutive frames, etc.
link | The instance used. |
Definition at line 4218 of file iso14229.c.
int isotp_receive | ( | IsoTpLink * | link, |
uint8_t * | payload, | ||
const uint16_t | payload_size, | ||
uint16_t * | out_size | ||
) |
Receives and parses the received data and copies the parsed data in to the internal buffer.
link | The IsoTpLink instance used to transceive data. |
payload | A pointer to an area in memory where the raw data is copied from. |
payload_size | The size of the received (raw) CAN data. |
out_size | A reference to a variable which will contain the size of the actual (parsed) data. |
Definition at line 4185 of file iso14229.c.
int isotp_send | ( | IsoTpLink * | link, |
const uint8_t | payload[], | ||
uint16_t | size | ||
) |
Sends ISO-TP frames via CAN, using the ID set in the initialising function.
Single-frame messages will be sent immediately when calling this function. Multi-frame messages will be sent consecutively when calling isotp_poll.
link | The instance used for transceiving data. |
payload | The payload to be sent. (Up to 4095 bytes). |
size | The size of the payload to be sent. |
Sends ISO-TP frames via CAN, using the ID set in the initialising function.
Definition at line 3979 of file iso14229.c.
int isotp_send_with_id | ( | IsoTpLink * | link, |
uint32_t | id, | ||
const uint8_t | payload[], | ||
uint16_t | size | ||
) |
See isotp_send, with the exception that this function is used only for functional addressing.
Definition at line 3983 of file iso14229.c.
uint32_t isotp_user_get_us | ( | void | ) |
user implemented, gets the amount of time passed since the last call in microseconds
Definition at line 3029 of file iso14229.c.
int isotp_user_send_can | ( | const uint32_t | arbitration_id, |
const uint8_t * | data, | ||
const uint8_t | size, | ||
void * | arg | ||
) |
user implemented, send can message. should return ISOTP_RET_OK when success.
Definition at line 3041 of file iso14229.c.
void ISOTPMockFree | ( | UDSTp_t * | tp | ) |
Definition at line 3711 of file iso14229.c.
void ISOTPMockLogToFile | ( | const char * | filename | ) |
write all messages to a file
filename | log file name (will be overwritten) |
Definition at line 3680 of file iso14229.c.
void ISOTPMockLogToStdout | ( | void | ) |
Definition at line 3697 of file iso14229.c.
UDSTp_t * ISOTPMockNew | ( | const char * | name, |
ISOTPMockArgs_t * | args | ||
) |
Create a mock transport. It is connected by default to a broadcast network of all other mock transports in the same process.
name | optional name of the transport (can be NULL) |
Definition at line 3660 of file iso14229.c.
void ISOTPMockReset | ( | void | ) |
clear all transports and close the log file
Definition at line 3704 of file iso14229.c.
UDSErr_t UDSClientInit | ( | UDSClient_t * | client | ) |
Definition at line 20 of file iso14229.c.
UDSErr_t UDSClientPoll | ( | UDSClient_t * | client | ) |
Definition at line 827 of file iso14229.c.
UDSErr_t UDSCtrlDTCSetting | ( | UDSClient_t * | client, |
uint8_t | dtcSettingType, | ||
uint8_t * | dtcSettingControlOptionRecord, | ||
uint16_t | len | ||
) |
Definition at line 667 of file iso14229.c.
bool UDSErrIsNRC | ( | UDSErr_t | err | ) |
Definition at line 2777 of file iso14229.c.
const char * UDSErrToStr | ( | UDSErr_t | err | ) |
Definition at line 2574 of file iso14229.c.
const char * UDSEventToStr | ( | UDSEvent_t | evt | ) |
Definition at line 2723 of file iso14229.c.
UDSErr_t UDSISOTpCInit | ( | UDSISOTpC_t * | tp, |
const UDSISOTpCConfig_t * | cfg | ||
) |
Definition at line 2962 of file iso14229.c.
uint32_t UDSMillis | ( | void | ) |
Get time in milliseconds.
Definition at line 2532 of file iso14229.c.
bool UDSSecurityAccessLevelIsReserved | ( | uint8_t | subFunction | ) |
Check if a security level is reserved per ISO14229-1:2020 Table 42.
securityLevel |
Definition at line 2560 of file iso14229.c.
UDSErr_t UDSSendBytes | ( | UDSClient_t * | client, |
const uint8_t * | data, | ||
uint16_t | size | ||
) |
Definition at line 306 of file iso14229.c.
UDSErr_t UDSSendCommCtrl | ( | UDSClient_t * | client, |
uint8_t | ctrl, | ||
uint8_t | comm | ||
) |
Definition at line 341 of file iso14229.c.
UDSErr_t UDSSendDiagSessCtrl | ( | UDSClient_t * | client, |
uint8_t | mode | ||
) |
Definition at line 330 of file iso14229.c.
UDSErr_t UDSSendECUReset | ( | UDSClient_t * | client, |
uint8_t | type | ||
) |
Definition at line 319 of file iso14229.c.
UDSErr_t UDSSendRDBI | ( | UDSClient_t * | client, |
const uint16_t * | didList, | ||
const uint16_t | numDataIdentifiers | ||
) |
Definition at line 364 of file iso14229.c.
UDSErr_t UDSSendRequestDownload | ( | UDSClient_t * | client, |
uint8_t | dataFormatIdentifier, | ||
uint8_t | addressAndLengthFormatIdentifier, | ||
size_t | memoryAddress, | ||
size_t | memorySize | ||
) |
Definition at line 456 of file iso14229.c.
UDSErr_t UDSSendRequestFileTransfer | ( | UDSClient_t * | client, |
uint8_t | mode, | ||
const char * | filePath, | ||
uint8_t | dataFormatIdentifier, | ||
uint8_t | fileSizeParameterLength, | ||
size_t | fileSizeUncompressed, | ||
size_t | fileSizeCompressed | ||
) |
Definition at line 599 of file iso14229.c.
UDSErr_t UDSSendRequestTransferExit | ( | UDSClient_t * | client | ) |
Definition at line 589 of file iso14229.c.
UDSErr_t UDSSendRequestUpload | ( | UDSClient_t * | client, |
uint8_t | dataFormatIdentifier, | ||
uint8_t | addressAndLengthFormatIdentifier, | ||
size_t | memoryAddress, | ||
size_t | memorySize | ||
) |
Definition at line 497 of file iso14229.c.
UDSErr_t UDSSendRoutineCtrl | ( | UDSClient_t * | client, |
uint8_t | type, | ||
uint16_t | routineIdentifier, | ||
const uint8_t * | data, | ||
uint16_t | size | ||
) |
Definition at line 418 of file iso14229.c.
UDSErr_t UDSSendSecurityAccess | ( | UDSClient_t * | client, |
uint8_t | level, | ||
uint8_t * | data, | ||
uint16_t | size | ||
) |
Definition at line 710 of file iso14229.c.
UDSErr_t UDSSendTesterPresent | ( | UDSClient_t * | client | ) |
Definition at line 353 of file iso14229.c.
UDSErr_t UDSSendTransferData | ( | UDSClient_t * | client, |
uint8_t | blockSequenceCounter, | ||
const uint16_t | blockLength, | ||
const uint8_t * | data, | ||
uint16_t | size | ||
) |
Definition at line 537 of file iso14229.c.
UDSErr_t UDSSendTransferDataStream | ( | UDSClient_t * | client, |
uint8_t | blockSequenceCounter, | ||
const uint16_t | blockLength, | ||
FILE * | fd | ||
) |
Definition at line 561 of file iso14229.c.
UDSErr_t UDSSendWDBI | ( | UDSClient_t * | client, |
uint16_t | dataIdentifier, | ||
const uint8_t * | data, | ||
uint16_t | size | ||
) |
Definition at line 387 of file iso14229.c.
UDSErr_t UDSServerInit | ( | UDSServer_t * | srv | ) |
Definition at line 2404 of file iso14229.c.
void UDSServerPoll | ( | UDSServer_t * | srv | ) |
Definition at line 2421 of file iso14229.c.
void UDSTpISOTpCDeinit | ( | UDSTpISOTpC_t * | tp | ) |
Definition at line 3205 of file iso14229.c.
UDSErr_t UDSTpISOTpCInit | ( | UDSTpISOTpC_t * | tp, |
const char * | ifname, | ||
uint32_t | source_addr, | ||
uint32_t | target_addr, | ||
uint32_t | source_addr_func, | ||
uint32_t | target_addr_func | ||
) |
Definition at line 3180 of file iso14229.c.
void UDSTpIsoTpSockDeinit | ( | UDSTpIsoTpSock_t * | tp | ) |
Definition at line 3480 of file iso14229.c.
UDSErr_t UDSTpIsoTpSockInitClient | ( | UDSTpIsoTpSock_t * | tp, |
const char * | ifname, | ||
uint32_t | source_addr, | ||
uint32_t | target_addr, | ||
uint32_t | target_addr_func | ||
) |
Definition at line 3454 of file iso14229.c.
UDSErr_t UDSTpIsoTpSockInitServer | ( | UDSTpIsoTpSock_t * | tp, |
const char * | ifname, | ||
uint32_t | source_addr, | ||
uint32_t | target_addr, | ||
uint32_t | source_addr_func | ||
) |
Definition at line 3428 of file iso14229.c.
UDSErr_t UDSUnpackRDBIResponse | ( | UDSClient_t * | client, |
UDSRDBIVar_t * | vars, | ||
uint16_t | numVars | ||
) |
Definition at line 845 of file iso14229.c.
UDSErr_t UDSUnpackRequestDownloadResponse | ( | const UDSClient_t * | client, |
struct RequestDownloadResponse * | resp | ||
) |
Definition at line 801 of file iso14229.c.
UDSErr_t UDSUnpackRoutineControlResponse | ( | const UDSClient_t * | client, |
struct RoutineControlResponse * | resp | ||
) |
Definition at line 773 of file iso14229.c.
UDSErr_t UDSUnpackSecurityAccessResponse | ( | const UDSClient_t * | client, |
struct SecurityAccessResponse * | resp | ||
) |
Definition at line 748 of file iso14229.c.