UDS (Unified Diagnostic Services) protocol handler.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_uds-3.1.1-py3-none-any.whl.
File metadata
- Download URL: py_uds-3.1.1-py3-none-any.whl
- Upload date:
- Size: 172.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0175b73e6fffca3a53a8b1901f5f5382b821ec800f72a0b062ec89c95211d10
|
|
| MD5 |
1453c7caeb774395019d26ff40281586
|
|
| BLAKE2b-256 |
7624bc6c471954ba66f82e34e267e662ff0a3cf69572d2b87bfcc50eaef9a12d
|