Skip to content

LibUDS 2.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Sep 14:32
· 3 commits to develop since this release
d5417f2

UDSLib v2.2.0

Universal Diagnostics Stack for Embedded Systems


What's New

Breaking

  • Reference-store callbacks no longer accept app_data = &store.
    uds_dtc_store_list_cb, uds_dtc_store_snapshot_cb, uds_dtc_store_extdata_cb,
    and uds_dtc_store_clear_cb require a uds_dtc_store_bind_t installed by
    uds_dtc_store_bind. The 2.1.0 wire-up (cfg.app_data = &store plus those
    callbacks) still compiles. It now returns NRC 0x22 (conditionsNotCorrect)
    instead of treating the record array as a store. Call uds_dtc_store_bind.

Added

  • DTC bind API (uds_dtc_store_bind / uds_dtc_bind, #130): one call per
    backend replaces hand-wiring store callbacks. Store bind keeps nested
    app_data via a caller-owned uds_dtc_store_bind_t. Last bind wins; store
    bind clears fn_dtc_read so backends do not silently mix. Framed vs raw
    0x19 remain complementary slots. Related: #127.
  • DTC store example shows ClearDiagnosticInformation (0x14, group 0xFFFFFF),
    then an empty 0x19 0x02 list and a 0x19 0x04 response with no freeze frame.

Test Results

All Tests Passed

  • Total Tests: 75
  • Passed: 75
  • Failed: 0

Build Information

  • Version: 2.2.0
  • Build Date: 2026-09-23 14:32:32 UTC
  • Compliance: ISO 14229-1 (UDS)
  • Platform Support: Bare Metal, FreeRTOS, Zephyr, Linux, Windows

Supported Services

UDSLib v2.2.0 implements 16 ISO 14229-1 services:

Service Description SID
Diagnostic Session Control Session management 0x10
ECU Reset Reset operations 0x11
Clear Diagnostic Information DTC clearing 0x14
Read DTC Information DTC reporting 0x19
Read Data By Identifier Data reading 0x22
Read Memory By Address Memory access 0x23
Security Access Seed/Key exchange 0x27
Communication Control TX/RX control 0x28
Authentication Certificate exchange 0x29
Write Data By Identifier Data writing 0x2E
Routine Control Routine execution 0x31
Request Download OTA init 0x34
Transfer Data Block streaming 0x36
Request Transfer Exit OTA completion 0x37
Write Memory By Address Memory writing 0x3D
Tester Present Keep-alive 0x3E
Control DTC Setting DTC ON/OFF 0x85

Installation

Download Pre-built Binaries

Download the attached artifacts:

  • uds_host_sim - Host-based ECU simulator
  • unit_tests - Complete test suite

Build from Source

git clone https://github.com/w1ne/udslib.git
cd udslib
git checkout v2.2.0
mkdir build && cd build
cmake ..
make
ctest

Documentation

Licensing

  • Community: PolyForm Noncommercial 1.0.0 (noncommercial use). See LICENSE.
  • Commercial: 5,000 EUR for production/commercial use, includes integration + 1 year support.
  • Contact: andrii@shylenko.com for commercial terms and support.

Report Issues

Found a bug? Open an issue

Full Changelog

See CHANGELOG.md for complete version history.


Code Coverage

Line Coverage: 94.5% · Function Coverage: 100.0%

Summary coverage rate:
lines......: 94.5% (2312 of 2447 lines)
functions..: 100.0% (124 of 124 functions)
branches...: no data found

Full coverage report available in release artifacts.