Skip to content

CanKit.Pro.Uds Namespace

Classes
UdsClient Factory entry point for constructing IUdsClient instances. Non-instantiable.
UdsClientOptions Configuration for an IUdsClient. All values are captured at construction and treated as immutable for the client's lifetime.
UdsException Base type for every error surfaced by IUdsClient. Subclasses distinguish the three families the MVP cares about: a well-formed negative response from the ECU (UdsNegativeResponseException), an ECU that failed to respond within its P2/P2* budget (UdsTimeoutException), and a malformed / mismatched response (UdsProtocolException). Transport-layer failures are re-thrown as-is (they are already typed as IsoTpException subclasses). Derives from CanKitException so L2/L3/L4 failures can be caught uniformly across the library (NFR-006 error architecture, arc42 ADR-12).
UdsNegativeResponseException Raised when the ECU replies with a Negative Response (0x7F, requestSid, NRC). The three raw bytes are surfaced verbatim so callers can log / branch on any NRC value, not just the ones named in UdsNegativeResponseCode (SRS FR-UDS-010).
UdsProtocolException Raised when the ECU response is malformed or does not correlate with the outgoing request (wrong SID echo, positive-response length shorter than the sub-function/DID that was asked for, etc). Distinct from a proper NRC — this class flags protocol violations, not business-layer rejections.
UdsTimeoutException Raised when the ECU does not deliver a positive or final negative response inside the applicable timing budget: ...
Structs
UdsDownloadResponse Positive-response parameters returned by RequestDownload (0x34, ISO 14229-1 §14.2.2).
UdsUploadResponse Positive-response parameters returned by RequestUpload (0x35, ISO 14229-1 §14.1.2). Mirrors UdsDownloadResponse; the max block length constrains the size of the TransferData responses the ECU will send back to the tester.
Interfaces
IUdsClient A single Unified Diagnostic Services (ISO 14229-1) client bound to one IIsoTpChannel. One client = one tester ↔ ECU relationship; overlapping requests from multiple callers are serialized by the client so at most one UDS request is outstanding at any time (mirrors ISO 14229-1 §7.3's "one active request per tester" model).
Enums
UdsEcuResetType ECUReset (0x11) reset-type sub-functions from ISO 14229-1 §9.1.2.
UdsNegativeResponseCode Named subset of Negative Response Codes from ISO 14229-1:2020 Table A.1. Values not listed here are still delivered as their raw Byte value on Code; the enum only names the ones the MVP client documents behaviour for.
UdsRoutineControlType RoutineControl (0x31) sub-functions from ISO 14229-1 §9.10.2.
UdsServiceId UDS Service Identifiers (SIDs) supported by the CanKit.Pro.Uds MVP client.
UdsSessionType DiagnosticSessionControl (0x10) session type sub-functions from ISO 14229-1 §9.2.2.
UdsTimeoutTimer Identifies which ISO 14229-1 §7.3 timing budget expired in UdsTimeoutException.