GitPedia
pylessard

pylessard/python-udsoncan

Python implementation of UDS (ISO-14229) standard.

30 Releases
Latest: 1w ago
v1.26.0Latest
pylessardpylessard·1w ago·June 9, 2026
GitHub

📋 Changes

  • J2534: Added missing constants (credits : @kirya-dev )
  • J2534: Added ISO15765 address type (credits : @kirya-dev )
V1.25.2v1.25.2
pylessardpylessard·4mo ago·February 13, 2026
GitHub

📋 Changes

  • Refactor of J2534
  • AsciiCodec replace invalid characters with ``replace=True``
v1.25.1
pylessardpylessard·9mo ago·September 9, 2025
GitHub

📋 Changes

  • J2514 Connection Parameters properly used
  • Fixed the list of supported DTC functions per standard version
  • WWHOBD subfunctions functional group ID can go up to 0xFF
V1.25.0v1.25.0
pylessardpylessard·1y ago·March 31, 2025
GitHub

📋 Changes

  • Added support for ReadDTCInformation : reportWWHOBDDTCByMaskRecord (credits: @jacobs-rvw ) (#245)
  • Added support for ReadDTCInformation : reportWWHOBDDTCWithPermanentStatus (#245)
  • Added Dtc.DtcClass class
  • Added a getter in the client to obtain the server P2 & P2* timeouts (#263)
  • Fix client read dtc type hint to allow using Dtc.Severity and Dtc.Status objects
  • CI tests Python 3.12 & 3.13
V1.24.1v1.24.1
pylessardpylessard·1y ago·March 21, 2025
GitHub

📋 Changes

  • Corrected an error message forgotten in 1.24.0
V1.24.0v1.24.0
pylessardpylessard·1y ago·March 20, 2025
GitHub

📋 Changes

  • Added a definition for DTCFormatIdentifier : SAE_J2012-DA_DTCFormat_04
  • Added an optional callback on the client that gets called when a NRC78 is received
  • Concurrency issue when using J2534 (credit @kirya-dev )
v1.23.2
pylessardpylessard·1y ago·November 17, 2024
GitHub

📋 Changes

  • Various improvement in J2534 module (credit @kirya-dev ). See #248
  • Made Close device after Discconnect. Previously, cant reconnect to the device (ERR_DEVICE_IN_USE).
  • Avoid debug log after error log.
  • Raising abnormal exception around connection to the J2534 device.
  • Fix error J2534 Error: CAN_ID_BOTH and CAN_29BIT_ID are the only valid ConnectFlags according J2534 standard.
  • Fix error Parameter pInput must be NULL.
  • Add read_vbatt for j2534 connection
  • Avoid extra access to DLL (log_last_operation)
  • + 1 more
v1.23.1
pylessardpylessard·1y ago·June 25, 2024
GitHub

📋 Changes

  • Bug fix
  • Adjusted `SecurityAccess.request_seed` minimal level to 1 as per ISO-14229. Fixes #220
  • Improvements
  • Added py.typed marker
  • Less confusing error message when a timeout occurs following NRC 0x78
v1.23.0
pylessardpylessard·2y ago·March 5, 2024
GitHub

📋 Changes

  • CommunicationControl now supports ``nodeIdentificationNumber`` parameter introduced in the 2013 version of the standard. Fixes #216
  • Updated example on index page to match changes introduced in 1.21
v1.22.1
pylessardpylessard·2y ago·February 11, 2024
GitHub

📋 Changes

  • #207 : Fixed broken compatibility with Python 3.7
v1.22.0
pylessardpylessard·2y ago·February 6, 2024
GitHub

📋 Changes

  • Added the ``client.test_data_identifier()`` method
  • Closing ``SocketConnection`` and ``IsoTPSocketConnection`` does not hang when provided with a socket in blocking mode (#191)
  • Fixed performance degradation introduced in v1.21 when requesting DIDs with a large configuration (#185)
v1.21.2
pylessardpylessard·2y ago·January 23, 2024
GitHub

📋 Changes

  • Fix #199 : IsotpSocketConnection does not support ``can-isotp`` v2
  • ``IsotpSocketConnection`` requires an ``isotp.Address`` object and will not accept ``txid`` and ``rxid`` like before. This interface change could hardly be avoided while keeping the code sane.
v1.21.1
pylessardpylessard·2y ago·January 15, 2024
GitHub

📋 Changes

  • Fix unbound local error raised on timeout when using PythonIsotpConnection
v1.21.0
pylessardpylessard·2y ago·January 14, 2024
GitHub

📋 Changes

  • Support isotp v2.x
  • Support passing a default DicCodec when reading a DID that have no codec defined (#185)
  • J2534 connection support 29 bits ID (credit @kirya-dev)
  • Unclear error when the server sends a bad payload on changeDiagnosticSession (#192)
v1.20.1
pylessardpylessard·2y ago·October 1, 2023
GitHub

📋 Changes

  • `Client.unlock_security_access` now have a parameter to pass down the RequestSeed data (securityAccessDataRecord) to the `request_seed ` method. Fixes #177
v1.20.0
pylessardpylessard·2y ago·September 27, 2023
GitHub

**New feature** -#164 - Support for Authentication service (0x29). Credits: @geynis

v1.19.0
pylessardpylessard·2y ago·September 19, 2023
GitHub

📋 Changes

  • Supports waiting on negative responses when SuppressPositiveResponse bit is set (#174).
  • Fixed the list of supported negatives response code for TransferExit (#173). Credits: @mikisama
v1.18.1
pylessardpylessard·2y ago·June 24, 2023
GitHub

📋 Changes

  • #162 - Client attach a reference to the request in the response object.
  • #161 : Bad static type in `client.send_request()` signature
v1.17.2
pylessardpylessard·3y ago·May 25, 2023
GitHub

📋 Changes

  • Fixed #157, Request and response decoding may fail depending on module loading order
v1.17.1
pylessardpylessard·3y ago·March 15, 2023
GitHub

📋 Changes

  • Fixed compatibility issue with Python 3.7 introduced by `TypedDict` usage in udsoncan V1.17
v1.17
pylessardpylessard·3y ago·March 15, 2023
GitHub

📋 Changes

  • Added type hints to the library
  • Accepts non-standard services that extends the BAseService class (@HugGa)
  • Fixed few instances where `None` values were not handled correctly
  • Corrected bad types in documentation
  • Bugfix for J2534Connection (@venden)
  • internal cleanup to remove mid-module import and circular dependencies problems
  • Reformatted everything with autopep8
v1.16
pylessardpylessard·3y ago·January 9, 2023
GitHub

📋 Changes

  • Added a connection for support of aisotp module as transport layer (Credits : @mikisama )
  • Added support for ResumeFile subfunction in RequestFileTransfer service (Credits : @kenjo )
  • MemoryLocation used for Read/WriteMemoryByAddress now accepts 64bits addresses (Credits : @driftregion )
  • Added supports for new Negative REturns Codes introduced in 2020 version of ISO-14229 (Credits @lumagi )
  • Connections using a thread now sets the daemon flag to true (Credits : @lumagi)
  • #143 - Fixed AccessTimingParameters service that wasn't handling the timing record parameter correctly.
  • #132 - Fixed a typo that would trigger an internal error if a bad DID config was given to the client.
v1.15
pylessardpylessard·4y ago·May 29, 2022
GitHub

📋 Changes

  • #110 : Support new subfunctions for ReadDiagnosticInformation (0x19) (tests : [kayoub5](https://github.com/kayoub5), [yassin92](https://github.com/yassin92))
  • reportDTCExtDataRecordByRecordNumber (0x16)
  • reportUserDefMemoryDTCByStatusMask (0x17)
  • reportUserDefMemoryDTCSnapshotRecordByDTCNumber (0x18)
  • reportUserDefMemoryDTCExtDataRecordByDTCNumber (0x19)
v1.14
pylessardpylessard·4y ago·August 13, 2021
GitHub

📋 Changes

  • Added support for J2534 passthru (#75, #76) [credit: @joeFischetti ]
  • Added possibility to send data bytes when requesting a seed with SecurityAccess service (#79) [credit : @guigor]
  • Added a parameter to disable the global timeout when sending a request, meaning it is now possible to wait indefinitely for a response if the server ask to wait continuously. (#73, #86) [credit: @martinjthompson ]
  • Added support for DynamicallyDefineDataIdentifier service (#78)
  • Start receive timer after call to the connection ``send`` to avoid timing out while transmitting long payload (#43, #68) [credit: @wanam ]
  • RequestFileTransfer response now properly parse the filesize (#89, #90) [credit: @trivialpursuer ]
v1.13.1
pylessardpylessard·5y ago·July 19, 2020
GitHub

📋 Changes

  • InputOutputControlByIdentifier service now support variable length DID with (Codec.ReadAllRemainingData). Fixes #57
  • Added a parameter to change the standard version support (2006, 2013, 2020).
  • When using version 2013 or 2020, DiagnosticSessionControl now requires the server to provides timing requirement (fixes #53)
  • Added a parameter to ignore server timing parameters when doing a DiagnosticSessionControl (for 2013 and 2020 version).
  • Fixed a typo in error code. IncorrectMessageLegthOrInvalidFormat becomes IncorrectMessageLengthOrInvalidFormat
  • Changes few logging details.
v1.12.2
pylessardpylessard·6y ago·April 17, 2020
GitHub

📋 Changes

  • Fixed #51. Unlocking a security level that is already unlocked (seed=0) is now handled properly. No key is sent to the server and a positive response is returned to the user.
v1.12.1
pylessardpylessard·6y ago·April 2, 2020
GitHub

📋 Changes

  • Fixed #50 : Correctly encode filename length on 16bits instead of 8bits in RequestFileTransfer
v1.12
pylessardpylessard·6y ago·March 29, 2020
GitHub

📋 Changes

  • #49 : Security level now passed to the security algorithm when using ``client.unlock_security_access``. For backward compatibility, parameters are now given as named parameter. Only the parameters present in the algorithm signature will be passed. See the below snippet of code
v1.11
pylessardpylessard·6y ago·March 28, 2020
GitHub

#47 - Now support RequestFileTransfer service

v1.10
pylessardpylessard·6y ago·January 30, 2020
GitHub

#New feature (#45). Allow the user to make a DidCodec that read a whole payload even if not dictated by ISO-14229.