iso14229 0.9.0
ISO14229-1 (UDS) C Library
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
iso14229.h File Reference

ISO14229-1 (UDS) library. More...

#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
Include dependency graph for iso14229.h:
This graph shows which files directly or indirectly include this file:

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_tISOTPMockNew (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
 

Detailed Description

ISO14229-1 (UDS) library.

See also
https://github.com/driftregion/iso14229

Definition in file iso14229.h.

Macro Definition Documentation

◆ ISO_TP_DEFAULT_BLOCK_SIZE

#define ISO_TP_DEFAULT_BLOCK_SIZE   8

Definition at line 1187 of file iso14229.h.

◆ ISO_TP_DEFAULT_RESPONSE_TIMEOUT_US

#define ISO_TP_DEFAULT_RESPONSE_TIMEOUT_US   100000

Definition at line 1202 of file iso14229.h.

◆ ISO_TP_DEFAULT_ST_MIN_US

#define ISO_TP_DEFAULT_ST_MIN_US   0

Definition at line 1192 of file iso14229.h.

◆ ISO_TP_FRAME_PADDING_VALUE

#define ISO_TP_FRAME_PADDING_VALUE   0xAA

Definition at line 1211 of file iso14229.h.

◆ ISO_TP_MAX_WFT_NUMBER

#define ISO_TP_MAX_WFT_NUMBER   1

Definition at line 1197 of file iso14229.h.

◆ ISO_TP_USER_SEND_CAN_ARG

#define ISO_TP_USER_SEND_CAN_ARG   1

Definition at line 1180 of file iso14229.h.

◆ ISOTP_INVALID_BS

#define ISOTP_INVALID_BS   0xFFFF

Definition at line 1271 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_BUFFER_OVFLW

#define ISOTP_PROTOCOL_RESULT_BUFFER_OVFLW   -8

Definition at line 1445 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_ERROR

#define ISOTP_PROTOCOL_RESULT_ERROR   -9

Definition at line 1446 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_INVALID_FS

#define ISOTP_PROTOCOL_RESULT_INVALID_FS   -5

Definition at line 1442 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_OK

#define ISOTP_PROTOCOL_RESULT_OK   0

Definition at line 1437 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_TIMEOUT_A

#define ISOTP_PROTOCOL_RESULT_TIMEOUT_A   -1

Definition at line 1438 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_TIMEOUT_BS

#define ISOTP_PROTOCOL_RESULT_TIMEOUT_BS   -2

Definition at line 1439 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_TIMEOUT_CR

#define ISOTP_PROTOCOL_RESULT_TIMEOUT_CR   -3

Definition at line 1440 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_UNEXP_PDU

#define ISOTP_PROTOCOL_RESULT_UNEXP_PDU   -6

Definition at line 1443 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_WFT_OVRN

#define ISOTP_PROTOCOL_RESULT_WFT_OVRN   -7

Definition at line 1444 of file iso14229.h.

◆ ISOTP_PROTOCOL_RESULT_WRONG_SN

#define ISOTP_PROTOCOL_RESULT_WRONG_SN   -4

Definition at line 1441 of file iso14229.h.

◆ ISOTP_RET_ERROR

#define ISOTP_RET_ERROR   -1

Definition at line 1258 of file iso14229.h.

◆ ISOTP_RET_INPROGRESS

#define ISOTP_RET_INPROGRESS   -2

Definition at line 1259 of file iso14229.h.

◆ ISOTP_RET_LENGTH

#define ISOTP_RET_LENGTH   -7

Definition at line 1264 of file iso14229.h.

◆ ISOTP_RET_NO_DATA

#define ISOTP_RET_NO_DATA   -5

Definition at line 1262 of file iso14229.h.

◆ ISOTP_RET_NOSPACE

#define ISOTP_RET_NOSPACE   -8

Definition at line 1265 of file iso14229.h.

◆ ISOTP_RET_OK

#define ISOTP_RET_OK   0

Definition at line 1257 of file iso14229.h.

◆ ISOTP_RET_OVERFLOW

#define ISOTP_RET_OVERFLOW   -3

Definition at line 1260 of file iso14229.h.

◆ ISOTP_RET_TIMEOUT

#define ISOTP_RET_TIMEOUT   -6

Definition at line 1263 of file iso14229.h.

◆ ISOTP_RET_WRONG_SN

#define ISOTP_RET_WRONG_SN   -4

Definition at line 1261 of file iso14229.h.

◆ ISOTPC_CONFIG_H

#define ISOTPC_CONFIG_H

Definition at line 1182 of file iso14229.h.

◆ ISOTPC_H

#define ISOTPC_H

Definition at line 1487 of file iso14229.h.

◆ ISOTPC_USER_DEFINITIONS_H

#define ISOTPC_USER_DEFINITIONS_H

Definition at line 1222 of file iso14229.h.

◆ ISOTPC_USER_H

#define ISOTPC_USER_H

Definition at line 1450 of file iso14229.h.

◆ IsoTpTimeAfter

#define IsoTpTimeAfter (   a,
 
)    ((int32_t)((int32_t)(b) - (int32_t)(a)) < 0)

Definition at line 1268 of file iso14229.h.

◆ UDS_0X10_REQ_LEN

#define UDS_0X10_REQ_LEN   2U

Definition at line 505 of file iso14229.h.

◆ UDS_0X10_RESP_LEN

#define UDS_0X10_RESP_LEN   6U

Definition at line 506 of file iso14229.h.

◆ UDS_0X11_REQ_MIN_LEN

#define UDS_0X11_REQ_MIN_LEN   2U

Definition at line 507 of file iso14229.h.

◆ UDS_0X11_RESP_BASE_LEN

#define UDS_0X11_RESP_BASE_LEN   2U

Definition at line 508 of file iso14229.h.

◆ UDS_0X14_REQ_MIN_LEN

#define UDS_0X14_REQ_MIN_LEN   4U

Definition at line 509 of file iso14229.h.

◆ UDS_0X14_RESP_BASE_LEN

#define UDS_0X14_RESP_BASE_LEN   1U

Definition at line 510 of file iso14229.h.

◆ UDS_0X19_REQ_MIN_LEN

#define UDS_0X19_REQ_MIN_LEN   2U

Definition at line 511 of file iso14229.h.

◆ UDS_0X19_RESP_BASE_LEN

#define UDS_0X19_RESP_BASE_LEN   2U

Definition at line 512 of file iso14229.h.

◆ UDS_0X22_RESP_BASE_LEN

#define UDS_0X22_RESP_BASE_LEN   1U

Definition at line 515 of file iso14229.h.

◆ UDS_0X23_REQ_MIN_LEN

#define UDS_0X23_REQ_MIN_LEN   4U

Definition at line 513 of file iso14229.h.

◆ UDS_0X23_RESP_BASE_LEN

#define UDS_0X23_RESP_BASE_LEN   1U

Definition at line 514 of file iso14229.h.

◆ UDS_0X27_REQ_BASE_LEN

#define UDS_0X27_REQ_BASE_LEN   2U

Definition at line 516 of file iso14229.h.

◆ UDS_0X27_RESP_BASE_LEN

#define UDS_0X27_RESP_BASE_LEN   2U

Definition at line 517 of file iso14229.h.

◆ UDS_0X28_REQ_BASE_LEN

#define UDS_0X28_REQ_BASE_LEN   3U

Definition at line 518 of file iso14229.h.

◆ UDS_0X28_RESP_LEN

#define UDS_0X28_RESP_LEN   2U

Definition at line 519 of file iso14229.h.

◆ UDS_0X2C_REQ_MIN_LEN

#define UDS_0X2C_REQ_MIN_LEN   2U

Definition at line 520 of file iso14229.h.

◆ UDS_0X2C_RESP_BASE_LEN

#define UDS_0X2C_RESP_BASE_LEN   2U

Definition at line 521 of file iso14229.h.

◆ UDS_0X2E_REQ_BASE_LEN

#define UDS_0X2E_REQ_BASE_LEN   3U

Definition at line 522 of file iso14229.h.

◆ UDS_0X2E_REQ_MIN_LEN

#define UDS_0X2E_REQ_MIN_LEN   4U

Definition at line 523 of file iso14229.h.

◆ UDS_0X2E_RESP_LEN

#define UDS_0X2E_RESP_LEN   3U

Definition at line 524 of file iso14229.h.

◆ UDS_0X2F_REQ_MIN_LEN

#define UDS_0X2F_REQ_MIN_LEN   4U

Definition at line 525 of file iso14229.h.

◆ UDS_0X2F_RESP_BASE_LEN

#define UDS_0X2F_RESP_BASE_LEN   4U

Definition at line 526 of file iso14229.h.

◆ UDS_0X31_REQ_MIN_LEN

#define UDS_0X31_REQ_MIN_LEN   4U

Definition at line 527 of file iso14229.h.

◆ UDS_0X31_RESP_MIN_LEN

#define UDS_0X31_RESP_MIN_LEN   4U

Definition at line 528 of file iso14229.h.

◆ UDS_0X34_REQ_BASE_LEN

#define UDS_0X34_REQ_BASE_LEN   3U

Definition at line 529 of file iso14229.h.

◆ UDS_0X34_RESP_BASE_LEN

#define UDS_0X34_RESP_BASE_LEN   2U

Definition at line 530 of file iso14229.h.

◆ UDS_0X35_REQ_BASE_LEN

#define UDS_0X35_REQ_BASE_LEN   3U

Definition at line 531 of file iso14229.h.

◆ UDS_0X35_RESP_BASE_LEN

#define UDS_0X35_RESP_BASE_LEN   2U

Definition at line 532 of file iso14229.h.

◆ UDS_0X36_REQ_BASE_LEN

#define UDS_0X36_REQ_BASE_LEN   2U

Definition at line 533 of file iso14229.h.

◆ UDS_0X36_RESP_BASE_LEN

#define UDS_0X36_RESP_BASE_LEN   2U

Definition at line 534 of file iso14229.h.

◆ UDS_0X37_REQ_BASE_LEN

#define UDS_0X37_REQ_BASE_LEN   1U

Definition at line 535 of file iso14229.h.

◆ UDS_0X37_RESP_BASE_LEN

#define UDS_0X37_RESP_BASE_LEN   1U

Definition at line 536 of file iso14229.h.

◆ UDS_0X38_REQ_BASE_LEN

#define UDS_0X38_REQ_BASE_LEN   9U

Definition at line 537 of file iso14229.h.

◆ UDS_0X38_RESP_BASE_LEN

#define UDS_0X38_RESP_BASE_LEN   3U

Definition at line 538 of file iso14229.h.

◆ UDS_0X3D_REQ_MIN_LEN

#define UDS_0X3D_REQ_MIN_LEN   5U

Definition at line 539 of file iso14229.h.

◆ UDS_0X3D_RESP_BASE_LEN

#define UDS_0X3D_RESP_BASE_LEN   2U

Definition at line 540 of file iso14229.h.

◆ UDS_0X3E_REQ_MAX_LEN

#define UDS_0X3E_REQ_MAX_LEN   2U

Definition at line 542 of file iso14229.h.

◆ UDS_0X3E_REQ_MIN_LEN

#define UDS_0X3E_REQ_MIN_LEN   2U

Definition at line 541 of file iso14229.h.

◆ UDS_0X3E_RESP_LEN

#define UDS_0X3E_RESP_LEN   2U

Definition at line 543 of file iso14229.h.

◆ UDS_0X85_REQ_BASE_LEN

#define UDS_0X85_REQ_BASE_LEN   2U

Definition at line 544 of file iso14229.h.

◆ UDS_0X85_RESP_LEN

#define UDS_0X85_RESP_LEN   2U

Definition at line 545 of file iso14229.h.

◆ UDS_0X87_REQ_BASE_LEN

#define UDS_0X87_REQ_BASE_LEN   2U

Definition at line 546 of file iso14229.h.

◆ UDS_0X87_RESP_LEN

#define UDS_0X87_RESP_LEN   2U

Definition at line 547 of file iso14229.h.

◆ UDS_ASSERT

#define UDS_ASSERT (   x)    assert(x)

Definition at line 583 of file iso14229.h.

◆ UDS_CLIENT_DEFAULT_P2_MS

#define UDS_CLIENT_DEFAULT_P2_MS   (150U)

Definition at line 137 of file iso14229.h.

◆ UDS_CLIENT_DEFAULT_P2_STAR_MS

#define UDS_CLIENT_DEFAULT_P2_STAR_MS   (1500U)

Definition at line 141 of file iso14229.h.

◆ UDS_CLIENT_DEFAULT_S3_MS

#define UDS_CLIENT_DEFAULT_S3_MS   (2000)

Definition at line 146 of file iso14229.h.

◆ UDS_CLIENT_RECV_BUF_SIZE

#define UDS_CLIENT_RECV_BUF_SIZE   (UDS_TP_MTU)

Definition at line 133 of file iso14229.h.

◆ UDS_CLIENT_SEND_BUF_SIZE

#define UDS_CLIENT_SEND_BUF_SIZE   (UDS_TP_MTU)

Definition at line 129 of file iso14229.h.

◆ UDS_CTP_NCM

#define UDS_CTP_NCM   1

0x28 Communication Control communicationType ISO14229-1:2020 Table B.1

Definition at line 460 of file iso14229.h.

◆ UDS_CTP_NWMCM

#define UDS_CTP_NWMCM   2

Definition at line 461 of file iso14229.h.

◆ UDS_CTP_NWMCM_NCM

#define UDS_CTP_NWMCM_NCM   3

Definition at line 462 of file iso14229.h.

◆ UDS_CUSTOM_MILLIS

#define UDS_CUSTOM_MILLIS   0

Definition at line 200 of file iso14229.h.

◆ UDS_FUNCTIONAL

#define UDS_FUNCTIONAL   0x2

Definition at line 723 of file iso14229.h.

◆ UDS_IGNORE_SRV_TIMINGS

#define UDS_IGNORE_SRV_TIMINGS   0x8

Definition at line 724 of file iso14229.h.

◆ UDS_ISOTP_MTU

#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.

◆ UDS_LEV_CTRLTP_DRXETX

#define UDS_LEV_CTRLTP_DRXETX   2

Definition at line 453 of file iso14229.h.

◆ UDS_LEV_CTRLTP_DRXTX

#define UDS_LEV_CTRLTP_DRXTX   3

Definition at line 454 of file iso14229.h.

◆ UDS_LEV_CTRLTP_ERXDTX

#define UDS_LEV_CTRLTP_ERXDTX   1

Definition at line 452 of file iso14229.h.

◆ UDS_LEV_CTRLTP_ERXTX

#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.

◆ UDS_LEV_DS_DS

#define UDS_LEV_DS_DS   1

Definition at line 430 of file iso14229.h.

◆ UDS_LEV_DS_EXTDS

#define UDS_LEV_DS_EXTDS   3

Definition at line 432 of file iso14229.h.

◆ UDS_LEV_DS_PRGS

#define UDS_LEV_DS_PRGS   2

Definition at line 431 of file iso14229.h.

◆ UDS_LEV_DS_SSDS

#define UDS_LEV_DS_SSDS   4

Definition at line 433 of file iso14229.h.

◆ UDS_LEV_DTCSTP_OFF

#define UDS_LEV_DTCSTP_OFF   2

Definition at line 488 of file iso14229.h.

◆ UDS_LEV_DTCSTP_ON

#define UDS_LEV_DTCSTP_ON   1

0x85 ControlDTCSetting SubFunction = [dtcSettingType] ISO14229-1:2020 Table 128

Definition at line 487 of file iso14229.h.

◆ UDS_LEV_LCTP_TM

#define UDS_LEV_LCTP_TM   3

Definition at line 496 of file iso14229.h.

◆ UDS_LEV_LCTP_VMTWFP

#define UDS_LEV_LCTP_VMTWFP   1

0x87 LinkControl SubFunction = [linkControlType] ISO14229-1:2020 Table 171

Definition at line 494 of file iso14229.h.

◆ UDS_LEV_LCTP_VMTWSP

#define UDS_LEV_LCTP_VMTWSP   2

Definition at line 495 of file iso14229.h.

◆ UDS_LEV_RCTP_RRR

#define UDS_LEV_RCTP_RRR   3

Definition at line 470 of file iso14229.h.

◆ UDS_LEV_RCTP_STPR

#define UDS_LEV_RCTP_STPR   2

Definition at line 469 of file iso14229.h.

◆ UDS_LEV_RCTP_STR

#define UDS_LEV_RCTP_STR   1

0x31 RoutineControl SubFunction = [routineControlType] ISO14229-1:2020 Table 426

Definition at line 468 of file iso14229.h.

◆ UDS_LEV_RT_DRPSD

#define UDS_LEV_RT_DRPSD   5

Definition at line 444 of file iso14229.h.

◆ UDS_LEV_RT_ERPSD

#define UDS_LEV_RT_ERPSD   4

Definition at line 443 of file iso14229.h.

◆ UDS_LEV_RT_HR

#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.

◆ UDS_LEV_RT_KOFFONR

#define UDS_LEV_RT_KOFFONR   2

Definition at line 441 of file iso14229.h.

◆ UDS_LEV_RT_SR

#define UDS_LEV_RT_SR   3

Definition at line 442 of file iso14229.h.

◆ UDS_LIB_VERSION

#define UDS_LIB_VERSION   "0.9.0"

Definition at line 16 of file iso14229.h.

◆ UDS_LOG_COLOR_D

#define UDS_LOG_COLOR_D

Definition at line 642 of file iso14229.h.

◆ UDS_LOG_COLOR_E

#define UDS_LOG_COLOR_E

Definition at line 639 of file iso14229.h.

◆ UDS_LOG_COLOR_I

#define UDS_LOG_COLOR_I

Definition at line 641 of file iso14229.h.

◆ UDS_LOG_COLOR_V

#define UDS_LOG_COLOR_V

Definition at line 643 of file iso14229.h.

◆ UDS_LOG_COLOR_W

#define UDS_LOG_COLOR_W

Definition at line 640 of file iso14229.h.

◆ UDS_LOG_DEBUG

#define UDS_LOG_DEBUG   4

Definition at line 613 of file iso14229.h.

◆ UDS_LOG_ERROR

#define UDS_LOG_ERROR   1

Definition at line 610 of file iso14229.h.

◆ UDS_LOG_FORMAT

#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.

◆ UDS_LOG_INFO

#define UDS_LOG_INFO   3

Definition at line 612 of file iso14229.h.

◆ UDS_LOG_LEVEL

#define UDS_LOG_LEVEL   UDS_LOG_NONE

Definition at line 619 of file iso14229.h.

◆ UDS_LOG_NONE

#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.

◆ UDS_LOG_RESET_COLOR

#define UDS_LOG_RESET_COLOR

Definition at line 644 of file iso14229.h.

◆ UDS_LOG_SDU

#define UDS_LOG_SDU (   tag,
  buffer,
  buff_len,
  info 
)    UDS_LogSDUDummy(tag, buffer, buff_len, info)

Definition at line 689 of file iso14229.h.

◆ UDS_LOG_VERBOSE

#define UDS_LOG_VERBOSE   5

Definition at line 614 of file iso14229.h.

◆ UDS_LOG_WARN

#define UDS_LOG_WARN   2

Definition at line 611 of file iso14229.h.

◆ UDS_LOGD

#define UDS_LOGD (   tag,
  format,
  ... 
)    UDS_LogDummy(tag, format, ##__VA_ARGS__)

Definition at line 675 of file iso14229.h.

◆ UDS_LOGE

#define UDS_LOGE (   tag,
  format,
  ... 
)    UDS_LogDummy(tag, format, ##__VA_ARGS__)

Definition at line 654 of file iso14229.h.

◆ UDS_LOGI

#define UDS_LOGI (   tag,
  format,
  ... 
)    UDS_LogDummy(tag, format, ##__VA_ARGS__)

Definition at line 668 of file iso14229.h.

◆ UDS_LOGV

#define UDS_LOGV (   tag,
  format,
  ... 
)    UDS_LogDummy(tag, format, ##__VA_ARGS__)

Definition at line 682 of file iso14229.h.

◆ UDS_LOGW

#define UDS_LOGW (   tag,
  format,
  ... 
)    UDS_LogDummy(tag, format, ##__VA_ARGS__)

Definition at line 661 of file iso14229.h.

◆ UDS_MAX_DIAGNOSTIC_SERVICES

#define UDS_MAX_DIAGNOSTIC_SERVICES   0x7F

Definition at line 499 of file iso14229.h.

◆ UDS_MOOP_ADDFILE

#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.

◆ UDS_MOOP_DELFILE

#define UDS_MOOP_DELFILE   2

Definition at line 477 of file iso14229.h.

◆ UDS_MOOP_RDDIR

#define UDS_MOOP_RDDIR   5

Definition at line 480 of file iso14229.h.

◆ UDS_MOOP_RDFILE

#define UDS_MOOP_RDFILE   4

Definition at line 479 of file iso14229.h.

◆ UDS_MOOP_REPLFILE

#define UDS_MOOP_REPLFILE   3

Definition at line 478 of file iso14229.h.

◆ UDS_MOOP_RSFILE

#define UDS_MOOP_RSFILE   6

Definition at line 481 of file iso14229.h.

◆ UDS_NEG_RESP_LEN

#define UDS_NEG_RESP_LEN   3U

Definition at line 504 of file iso14229.h.

◆ UDS_PRINTF_FORMAT

#define UDS_PRINTF_FORMAT (   fmt_index,
  first_arg 
)

Definition at line 696 of file iso14229.h.

◆ UDS_REQUEST_SID_OF

#define UDS_REQUEST_SID_OF (   response_sid)    ((response_sid) - 0x40)

Definition at line 502 of file iso14229.h.

◆ UDS_RESPONSE_SID_OF

#define UDS_RESPONSE_SID_OF (   request_sid)    ((request_sid) + 0x40)

Definition at line 501 of file iso14229.h.

◆ UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_AUTH_FAIL_DELAY_MS

#define UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_AUTH_FAIL_DELAY_MS   (1000)

Definition at line 189 of file iso14229.h.

◆ UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_BOOT_DELAY_MS

#define UDS_SERVER_0x27_BRUTE_FORCE_MITIGATION_BOOT_DELAY_MS   (1000)

Definition at line 184 of file iso14229.h.

◆ UDS_SERVER_DEFAULT_P2_MS

#define UDS_SERVER_DEFAULT_P2_MS   (50)

Definition at line 153 of file iso14229.h.

◆ UDS_SERVER_DEFAULT_P2_STAR_MS

#define UDS_SERVER_DEFAULT_P2_STAR_MS   (5000)

Definition at line 158 of file iso14229.h.

◆ UDS_SERVER_DEFAULT_POWER_DOWN_TIME_MS

#define UDS_SERVER_DEFAULT_POWER_DOWN_TIME_MS   (60)

Definition at line 175 of file iso14229.h.

◆ UDS_SERVER_DEFAULT_S3_MS

#define UDS_SERVER_DEFAULT_S3_MS   (5100)

Definition at line 163 of file iso14229.h.

◆ UDS_SERVER_DEFAULT_XFER_DATA_MAX_BLOCKLENGTH

#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.

◆ UDS_SERVER_RECV_BUF_SIZE

#define UDS_SERVER_RECV_BUF_SIZE   (UDS_TP_MTU)

Definition at line 125 of file iso14229.h.

◆ UDS_SERVER_SEND_BUF_SIZE

#define UDS_SERVER_SEND_BUF_SIZE   (UDS_TP_MTU)

Definition at line 121 of file iso14229.h.

◆ UDS_SUPPRESS_POS_RESP

#define UDS_SUPPRESS_POS_RESP   0x1

Definition at line 722 of file iso14229.h.

◆ UDS_SYS

#define UDS_SYS   UDS_SYS_CUSTOM

Definition at line 37 of file iso14229.h.

◆ UDS_SYS_ARDUINO

#define UDS_SYS_ARDUINO   3

Definition at line 23 of file iso14229.h.

◆ UDS_SYS_CUSTOM

#define UDS_SYS_CUSTOM   0

Definition at line 20 of file iso14229.h.

◆ UDS_SYS_ESP32

#define UDS_SYS_ESP32   4

Definition at line 24 of file iso14229.h.

◆ UDS_SYS_UNIX

#define UDS_SYS_UNIX   1

Definition at line 21 of file iso14229.h.

◆ UDS_SYS_WINDOWS

#define UDS_SYS_WINDOWS   2

Definition at line 22 of file iso14229.h.

◆ UDS_TP_MTU

#define UDS_TP_MTU   UDS_ISOTP_MTU

Definition at line 117 of file iso14229.h.

◆ UDS_TP_NOOP_ADDR

#define UDS_TP_NOOP_ADDR   (0xFFFFFFFF)

Definition at line 248 of file iso14229.h.

Typedef Documentation

◆ UDS_LogLevel_t

typedef int UDS_LogLevel_t

Definition at line 616 of file iso14229.h.

◆ UDSTpAddr_t

typedef uint8_t UDSTpAddr_t

Definition at line 233 of file iso14229.h.

◆ UDSTpStatus_t

typedef uint32_t UDSTpStatus_t

Definition at line 219 of file iso14229.h.

Enumeration Type Documentation

◆ IsoTpFlowStatus

enum IsoTpFlowStatus

Definition at line 1429 of file iso14229.h.

◆ IsoTpProtocolControlInformation

enum IsoTpProtocolControlInformation

Definition at line 1420 of file iso14229.h.

◆ IsoTpReceiveStatusTypes

enum IsoTpReceiveStatusTypes

Definition at line 1281 of file iso14229.h.

◆ IsoTpSendStatusTypes

enum IsoTpSendStatusTypes

Definition at line 1274 of file iso14229.h.

◆ UDS_A_Mtype_t

enum UDS_A_Mtype_t

Definition at line 221 of file iso14229.h.

◆ UDS_A_TA_Type_t

enum UDS_A_TA_Type_t

Definition at line 228 of file iso14229.h.

◆ UDSDiagnosticServiceId

enum UDSDiagnosticServiceId

Definition at line 549 of file iso14229.h.

◆ UDSErr_t

enum UDSErr_t

Definition at line 334 of file iso14229.h.

◆ UDSEvent_t

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.

◆ UDSTpStatusFlags

enum UDSTpStatusFlags

Definition at line 212 of file iso14229.h.

Function Documentation

◆ isotp_init_link()

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.

Parameters
linkThe
instance used for transceiving data.
sendidThe ID used to send data to other CAN nodes.
sendbufA pointer to an area in memory which can be used as a buffer for data to be sent.
sendbufsizeThe size of the buffer area.
recvbufA pointer to an area in memory which can be used as a buffer for data to be received.
recvbufsizeThe size of the buffer area.

Definition at line 4205 of file iso14229.c.

◆ isotp_on_can_message()

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.

Parameters
linkThe instance used for transceiving data.
dataThe data received via CAN.
lenThe length of the data received.

Definition at line 4036 of file iso14229.c.

◆ isotp_poll()

void isotp_poll ( IsoTpLink link)

Polling function; call this function periodically to handle timeouts, send consecutive frames, etc.

Parameters
linkThe instance used.

Definition at line 4218 of file iso14229.c.

◆ isotp_receive()

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.

Parameters
linkThe IsoTpLink instance used to transceive data.
payloadA pointer to an area in memory where the raw data is copied from.
payload_sizeThe size of the received (raw) CAN data.
out_sizeA reference to a variable which will contain the size of the actual (parsed) data.
Returns
Possible return values:

Definition at line 4185 of file iso14229.c.

◆ isotp_send()

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.

Parameters
linkThe instance used for transceiving data.
payloadThe payload to be sent. (Up to 4095 bytes).
sizeThe size of the payload to be sent.
Returns
Possible return values:
  • ISOTP_RET_OVERFLOW
  • ISOTP_RET_INPROGRESS
  • ISOTP_RET_OK
  • The return value of the user shim function isotp_user_send_can().

Sends ISO-TP frames via CAN, using the ID set in the initialising function.

Definition at line 3979 of file iso14229.c.

◆ isotp_send_with_id()

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.

◆ isotp_user_get_us()

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.

◆ isotp_user_send_can()

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.

Returns
may return ISOTP_RET_NOSPACE if the CAN transfer should be retried later or ISOTP_RET_ERROR if transmission couldn't be completed

Definition at line 3041 of file iso14229.c.

◆ ISOTPMockFree()

void ISOTPMockFree ( UDSTp_t tp)

Definition at line 3711 of file iso14229.c.

◆ ISOTPMockLogToFile()

void ISOTPMockLogToFile ( const char *  filename)

write all messages to a file

Note
uses UDSMillis() to get the current time
Parameters
filenamelog file name (will be overwritten)

Definition at line 3680 of file iso14229.c.

◆ ISOTPMockLogToStdout()

void ISOTPMockLogToStdout ( void  )

Definition at line 3697 of file iso14229.c.

◆ ISOTPMockNew()

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.

Parameters
nameoptional name of the transport (can be NULL)
Returns
UDSTp_t*

Definition at line 3660 of file iso14229.c.

◆ ISOTPMockReset()

void ISOTPMockReset ( void  )

clear all transports and close the log file

Definition at line 3704 of file iso14229.c.

◆ UDSClientInit()

UDSErr_t UDSClientInit ( UDSClient_t client)

Definition at line 20 of file iso14229.c.

◆ UDSClientPoll()

UDSErr_t UDSClientPoll ( UDSClient_t client)

Definition at line 827 of file iso14229.c.

◆ UDSCtrlDTCSetting()

UDSErr_t UDSCtrlDTCSetting ( UDSClient_t client,
uint8_t  dtcSettingType,
uint8_t *  dtcSettingControlOptionRecord,
uint16_t  len 
)

Definition at line 667 of file iso14229.c.

◆ UDSErrIsNRC()

bool UDSErrIsNRC ( UDSErr_t  err)

Definition at line 2777 of file iso14229.c.

◆ UDSErrToStr()

const char * UDSErrToStr ( UDSErr_t  err)

Definition at line 2574 of file iso14229.c.

◆ UDSEventToStr()

const char * UDSEventToStr ( UDSEvent_t  evt)

Definition at line 2723 of file iso14229.c.

◆ UDSISOTpCInit()

UDSErr_t UDSISOTpCInit ( UDSISOTpC_t tp,
const UDSISOTpCConfig_t cfg 
)

Definition at line 2962 of file iso14229.c.

◆ UDSMillis()

uint32_t UDSMillis ( void  )

Get time in milliseconds.

Returns
current time in milliseconds

Definition at line 2532 of file iso14229.c.

◆ UDSSecurityAccessLevelIsReserved()

bool UDSSecurityAccessLevelIsReserved ( uint8_t  subFunction)

Check if a security level is reserved per ISO14229-1:2020 Table 42.

Parameters
securityLevel
Returns
true
false

Definition at line 2560 of file iso14229.c.

◆ UDSSendBytes()

UDSErr_t UDSSendBytes ( UDSClient_t client,
const uint8_t *  data,
uint16_t  size 
)

Definition at line 306 of file iso14229.c.

◆ UDSSendCommCtrl()

UDSErr_t UDSSendCommCtrl ( UDSClient_t client,
uint8_t  ctrl,
uint8_t  comm 
)

Definition at line 341 of file iso14229.c.

◆ UDSSendDiagSessCtrl()

UDSErr_t UDSSendDiagSessCtrl ( UDSClient_t client,
uint8_t  mode 
)

Definition at line 330 of file iso14229.c.

◆ UDSSendECUReset()

UDSErr_t UDSSendECUReset ( UDSClient_t client,
uint8_t  type 
)

Definition at line 319 of file iso14229.c.

◆ UDSSendRDBI()

UDSErr_t UDSSendRDBI ( UDSClient_t client,
const uint16_t *  didList,
const uint16_t  numDataIdentifiers 
)

Definition at line 364 of file iso14229.c.

◆ UDSSendRequestDownload()

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.

◆ UDSSendRequestFileTransfer()

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.

◆ UDSSendRequestTransferExit()

UDSErr_t UDSSendRequestTransferExit ( UDSClient_t client)

Definition at line 589 of file iso14229.c.

◆ UDSSendRequestUpload()

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.

◆ UDSSendRoutineCtrl()

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.

◆ UDSSendSecurityAccess()

UDSErr_t UDSSendSecurityAccess ( UDSClient_t client,
uint8_t  level,
uint8_t *  data,
uint16_t  size 
)

Definition at line 710 of file iso14229.c.

◆ UDSSendTesterPresent()

UDSErr_t UDSSendTesterPresent ( UDSClient_t client)

Definition at line 353 of file iso14229.c.

◆ UDSSendTransferData()

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.

◆ UDSSendTransferDataStream()

UDSErr_t UDSSendTransferDataStream ( UDSClient_t client,
uint8_t  blockSequenceCounter,
const uint16_t  blockLength,
FILE *  fd 
)

Definition at line 561 of file iso14229.c.

◆ UDSSendWDBI()

UDSErr_t UDSSendWDBI ( UDSClient_t client,
uint16_t  dataIdentifier,
const uint8_t *  data,
uint16_t  size 
)

Definition at line 387 of file iso14229.c.

◆ UDSServerInit()

UDSErr_t UDSServerInit ( UDSServer_t srv)

Definition at line 2404 of file iso14229.c.

◆ UDSServerPoll()

void UDSServerPoll ( UDSServer_t srv)

Definition at line 2421 of file iso14229.c.

◆ UDSTpISOTpCDeinit()

void UDSTpISOTpCDeinit ( UDSTpISOTpC_t tp)

Definition at line 3205 of file iso14229.c.

◆ UDSTpISOTpCInit()

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.

◆ UDSTpIsoTpSockDeinit()

void UDSTpIsoTpSockDeinit ( UDSTpIsoTpSock_t tp)

Definition at line 3480 of file iso14229.c.

◆ UDSTpIsoTpSockInitClient()

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.

◆ UDSTpIsoTpSockInitServer()

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.

◆ UDSUnpackRDBIResponse()

UDSErr_t UDSUnpackRDBIResponse ( UDSClient_t client,
UDSRDBIVar_t vars,
uint16_t  numVars 
)

Definition at line 845 of file iso14229.c.

◆ UDSUnpackRequestDownloadResponse()

UDSErr_t UDSUnpackRequestDownloadResponse ( const UDSClient_t client,
struct RequestDownloadResponse resp 
)

Definition at line 801 of file iso14229.c.

◆ UDSUnpackRoutineControlResponse()

UDSErr_t UDSUnpackRoutineControlResponse ( const UDSClient_t client,
struct RoutineControlResponse resp 
)

Definition at line 773 of file iso14229.c.

◆ UDSUnpackSecurityAccessResponse()

UDSErr_t UDSUnpackSecurityAccessResponse ( const UDSClient_t client,
struct SecurityAccessResponse resp 
)

Definition at line 748 of file iso14229.c.