Transports¶
UDSClient accepts a Transport, which exchanges complete protocol data units
independently of the underlying protocol. Software IsoTP and
J2534NativeIsoTP share this interface. Future transports such as DoIP and HSFZ
can implement it without inheriting ISO-TP behavior.
Software ISO-TP lives in automotive.transports.isotp. The native J2534
implementation lives in automotive.adapters.j2534 and is documented under
adapters.
Asynchronous API¶
Transports exchanging complete diagnostic protocol data units.
- class automotive.transports.Transport(native: R)[source]¶
A message transport usable by UDS, independent of the underlying protocol.
Concrete transports handle framing, addressing, and connection setup. Closing a transport invalidates its receivers and diagnostic clients.
- async send(data: bytes | bytearray | memoryview) None[source]¶
Transmit one complete PDU using the transport’s framing and limits.
- Parameters:
data – Bytes, bytearray, or contiguous byte-oriented memoryview.
Transport failures raise the corresponding protocol or connection error. A transmission deadline raises TimeoutError.
- recv() Receiver[bytes][source]¶
Subscribe immediately to complete received PDUs as bytes.
- Returns:
An async iterator with aclose and async context management.
Subscribe before sending. Closing this receiver releases its subscription. A receive deadline raises TimeoutError; another anext may continue.
- async aclose() None¶
Release hardware and wake pending operations; repeated calls are safe.
- property closed: bool¶
Whether this resource or its owning parent has been closed.
Synchronous API¶
automotive.sync.transports.Transport provides the matching blocking interface
for synchronous ISO-TP, native J2534, and diagnostic clients.
- class automotive.sync.transports.Transport(resource: R)[source]¶
A blocking message transport usable by UDS, independent of its protocol.
Concrete transports handle framing, addressing, and connection setup. Closing a transport invalidates its receivers and diagnostic clients.
- send(data: bytes | bytearray | memoryview) None[source]¶
Transmit one complete PDU, blocking until the transport completes it.
- Parameters:
data – Bytes, bytearray, or contiguous byte-oriented memoryview.
Transport failures raise the corresponding protocol or connection error. A transmission deadline raises TimeoutError.
- recv() Receiver[bytes][source]¶
Subscribe immediately to complete received PDUs as bytes.
- Returns:
A blocking iterator supporting with and close(). Subscribe before sending. A receive deadline raises TimeoutError; next() can resume.
- close() None¶
Release the resource and wake pending operations; idempotent.
- property closed: bool¶
Whether this resource or its owning parent has been closed.