pylessard/python-udsoncan
Python implementation of UDS (ISO-14229) standard.
30 Releases
Latest: 1w ago
v1.26.0Latest
📋 Changes
- J2534: Added missing constants (credits : @kirya-dev )
- J2534: Added ISO15765 address type (credits : @kirya-dev )
V1.25.2v1.25.2
📋 Changes
- Refactor of J2534
- AsciiCodec replace invalid characters with ``replace=True``
v1.25.1
📋 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
📋 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
📋 Changes
- Corrected an error message forgotten in 1.24.0
V1.24.0v1.24.0
📋 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
📋 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
📋 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
📋 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
📋 Changes
- #207 : Fixed broken compatibility with Python 3.7
v1.22.0
📋 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
📋 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
📋 Changes
- Fix unbound local error raised on timeout when using PythonIsotpConnection
v1.21.0
📋 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
📋 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
**New feature** -#164 - Support for Authentication service (0x29). Credits: @geynis
v1.19.0
📋 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
📋 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
📋 Changes
- Fixed #157, Request and response decoding may fail depending on module loading order
v1.17.1
📋 Changes
- Fixed compatibility issue with Python 3.7 introduced by `TypedDict` usage in udsoncan V1.17
v1.17
📋 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
📋 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
📋 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
📋 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
📋 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
📋 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
📋 Changes
- Fixed #50 : Correctly encode filename length on 16bits instead of 8bits in RequestFileTransfer
v1.12
📋 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
#47 - Now support RequestFileTransfer service
v1.10
#New feature (#45). Allow the user to make a DidCodec that read a whole payload even if not dictated by ISO-14229.
