Skip to main content

UDS (Unified Diagnostic Services) protocol handler.

Project description

Continuous Integration Status Security Scan Status CII Best Practices ReadTheDocs Build Status Software Tests Coverage

The latest Version of UDS package Supported Python versions PyPI status Total PyPI downloads Monthly PyPI downloads License Type

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_uds-3.1.1-py3-none-any.whl (172.1 kB view details)

Uploaded Python 3

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

Hashes for py_uds-3.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0175b73e6fffca3a53a8b1901f5f5382b821ec800f72a0b062ec89c95211d10
MD5 1453c7caeb774395019d26ff40281586
BLAKE2b-256 7624bc6c471954ba66f82e34e267e662ff0a3cf69572d2b87bfcc50eaef9a12d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page