Python package for working with the Unified Diagnostic Services (UDS) protocol, as defined in ISO 14229. It supports different communication buses on both communication sides (client and server).
Documentation
User documentation is hosted by ReadTheDocs portal and available under the following link: https://uds.readthedocs.io/
Security policy for this package is defined in SECURITY.md file.
If you want to become a contributor, please read CONTRIBUTING.md file.
Motivation
Existing Python UDS packages (see Alternative Options) cover parts of the protocol, but often focus on a single bus, client-only communication, or limited configuration.
This package is designed to:
support multiple buses (CAN, LIN, Ethernet, K-Line, FlexRay) and multiple bus managers (e.g. python-can)
handle both client and server roles
provide detailed control over timing and transmission parameters
enable use-cases from simple send/receive to simulation, testing, and sniffing/decoding UDS traffic
Development is ongoing, but the architecture is already in place, and several features are implemented. See the current status at: https://uds.readthedocs.io/en/stable/#features
Alternative Options
python-udsoncan
Link: https://github.com/pylessard/python-udsoncan
pros:
extensive documentation
active community and maintenance
multiple connection types supported
full CAN support; extensible to other buses with custom code
configurable CAN transmission parameters via can-isotp
multiple diagnostic services implemented
error handling for both positive and negative scenarios
control over CAN network timings (N_As, N_Ar, N_Bs, N_Br, N_Cs, N_Cr)
possibility to inject Transport/Network layer errors
cons:
no full-duplex communication
only client-side communication implemented
python-uds
Link: https://github.com/richClubb/python-uds
pros:
CAN and LIN buses are supported
cons:
limited documentation
not actively maintained (last release: March 2019)
limited interface support (primarily python-can)
no full-duplex communication
only client-side communication implemented
limited configuration of communication parameters
no error injection options (e.g. Flow Status manipulation, incorrect sequence handling)
Contact
group: UDS package development
discord: UDS discord server
Metadata
Release files for py-uds 4.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_uds-4.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / py_uds-4.2.0-py3-none-any.whl
| Download URL | py_uds-4.2.0-py3-none-any.whl |
|---|---|
| Size | 198.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a1f5c5e74009ee55f8c85cfcde0f43507b51db735f116a97f171de340a4b400
|
|
BLAKE2b-256 checksum How to use checksums |
8da4d96c85952bba05b3640f3722c8e214b725457ef2f104b39be51c93edbe06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|