Diagnostics (DoCAN / UDS)
Overview
The reference application provides DoCAN (ISO 15765-2) transport and UDS diagnostics on
platforms that enable PLATFORM_SUPPORT_TRANSPORT and PLATFORM_SUPPORT_UDS. The
features described here are platform independent; each platform selects them through its
executables/referenceApp/platforms/<platform_name>/Options.cmake.
Tester addressing
With PLATFORM_SUPPORT_OBD_UDS_ADDRESSING enabled, the DoCAN channel uses ISO 15765-4
OBD-style tester addressing (0x7E0 request / 0x7E8 response, logical address 0x0600), so
standard UDS tester tools work without a custom channel configuration. Platforms without
the option keep the default example addressing.
Programming session
PLATFORM_SUPPORT_PROGRAMMING_SESSION adds an application-level UDS programming
session which keeps the UDS dispatcher alive instead of handing over to a bootloader.
See executables/referenceApp/udsConfiguration/src/uds/session/DiagSession.cpp for
the details.
Demo services
PLATFORM_SUPPORT_UDS_DEMO_SERVICES registers example UDS services in the reference
application: ECU reset, an in-memory DTC store with read/clear/control services,
security access, VIN write and demo routine control. They give a connected tester a
complete diagnostic surface out-of-the-box and serve as worked examples for
implementing application-level UDS jobs on top of the UDS stack. The implementations
are located in executables/referenceApp/application/src/uds.