| 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: ... |