v1.9.0 — SID 0x2A + SID 0x35 + SID 0x2F + Wireshark dissector
What's new in v1.9.0
Added
-
SID 0x2A — ReadDataByPeriodicIdentifier (ISO 14229-1 §11.5).
The ECU now pushes DID data autonomously at tester-configured rates without
waiting for repeated requests. One-time subscription from the tester; the ECU
streams[0x6A, periodicId, dataRecord...]frames until session returns to
Default or the tester sendstransmissionMode = stopSending (0x04).- New module
core/uds_periodic.h/.c— stateless tick-driven scheduler.
Static subscription tables_subs[UDS_PERIODIC_MAX_SUBSCRIPTIONS](default 8).
Three push rates:SLOW(1000 ms),MEDIUM(100 ms),FAST(10 ms).
uds_periodic_tick_1ms()advances all counters;uds_periodic_pop_due()returns
at most one ready frame per call. No malloc/free anywhere. - New
core/uds_services/service_0x2A.c— subscription handler.
ValidatestransmissionMode(NRC 0x12 for 0x00/0x05+), looks up each0xF2xxDID
via the 5-step safety chain, checksDID_ACCESS_READ, and registers or removes
subscriptions. Positive response:[0x6A](1 byte).stopSendingis a no-op if
the ID was not subscribed. - Integration — all 12 examples and
platform/freertos/freertos_platform_api.c
updated withuds_periodic_tick_1ms()+ drain loop and session-change callback
that callsuds_periodic_cancel_all()on return to Default session. - 26 new unit tests — scheduler lifecycle (TC-PERIODIC-001–014) and handler
branches (TC-0x2A-001–012). Closes #48.
- New module
-
SID 0x35 RequestUpload — ECU-to-tester data readback over the existing 0x36/0x37
transfer state machine. Symmetric counterpart to 0x34 RequestDownload. Supports
calibration data readback, NVM log extraction, and flash image verification readout.
Requires Programming session + Level 1 security unlock.read_cb = NULLis
backward-compatible and returns NRC 0x22. Closes #46. -
SID 0x2F InputOutputControlByIdentifier — actuator and I/O control for EOL and
bench testing.returnControlToECU/resetToDefault/freezeCurrentState/
shortTermAdjustment(CR-010). Closes #47. -
Wireshark Lua dissector (
extras/wireshark/eds.lua) — UDS service decode (all
17 SIDs), full NRC table, ISO-TP PCI frame types, DoIP payload types
(0x0005–0x0008, 0x8001–0x8003). Closes #44.
Changed
cmake/eds_service_sources.cmake(new file) — canonical list of all 17 UDS
service handler source files. All 20 exampleCMakeLists.txtfiles nowinclude()
this file. Adding a new SID requires one line here only.
Full changelog: CHANGELOG.md