iso14229 0.9.0
ISO14229-1 (UDS) C Library
Loading...
Searching...
No Matches
iso14229

iso14229 is a UDS (ISO14229) library for writing servers and clients.

Source Code: https://github.com/driftregion/iso14229

Quick Start

  1. Download the sources iso14229.c and iso14229.h from the releases page and add them to your project.
  2. Use the Examples to guide your implementation.

Examples

To access the examples, clone or download the repository from https://github.com/driftregion/iso14229

Example Description
linux_server Basic Linux server using socketcan ISO-TP
linux_rdbi_wdbi Read/Write Data By Identifier (0x22/0x2E)
linux_server_0x27 Security Access (0x27)
arduino_server Arduino server
esp32_server ESP32 server
s32k144_server NXP S32K144 server

API Documentation

Configuration

Configure the library at compilation time with preprocessor defines:

Transport Selection

Transport Define Description Suitable For Targets Example Implementations
isotp_sock -DUDS_TP_ISOTP_SOCK Linux kernel ISO-TP socket Linux newer than 5.10 linux_server_0x27
isotp_c_socketcan -DUDS_TP_ISOTP_C_SOCKETCAN isotp-c over SocketCAN Linux newer than 2.6.25 linux_server_0x27
isotp_c -DUDS_TP_ISOTP_C Software ISO-TP Everything else arduino_server esp32_server s32k144_server
isotp_mock -DUDS_TP_ISOTP_MOCK In-memory transport for testing platform-independent unit tests see unit tests

System Selection Override

The system is usually detected by default, but can be overridden with the following options:

Define Values
-DUDS_SYS= UDS_SYS_UNIX, UDS_SYS_WINDOWS, UDS_SYS_ARDUINO, UDS_SYS_ESP32, UDS_SYS_CUSTOM

For examples of UDS_SYS_CUSTOM, see arduino_server, esp32_server, s32k144_server.

Logging

Logging is disabled by default. However, it is very helpful to identify problems during initial server/client bringup.

Define Values
-DUDS_LOG_LEVEL= UDS_LOG_NONE, UDS_LOG_ERROR, UDS_LOG_WARN, UDS_LOG_INFO, UDS_LOG_DEBUG, UDS_LOG_VERBOSE

Other Options

  • -DUDS_SERVER_... - Server configuration options (see Configuration)
  • -DUDS_CLIENT_... - Client configuration options (see Configuration)