Obd

Latest version: v0.7.2

Safety actively analyzes 621854 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.7.2

Changes
- Updated `pint` dependency for compatibility with python >= 3.10
- Support for Mode 9 PIDs
- Added 1 second read-retry loop for unresponsive dongles

0.7.1

New Features
- Added the `header` field to all `OBDCommand` objects, allowing the user set custom headers on their queires.
- Added voltage check enabled by default, to handle cases where the vehicle is not powered.
- Added lower-power-mode support
- Added new `check_voltage` and `start_low_power` options to the `OBD` constructor.
- Added `__repr__` implementation for `OBDCommand`s, containing more information than the normal `__str__` function.
- `Async` connections now support an optional `force` parameter, like the main `OBD` API.
- Added `delay_cmds` argument to the `Async` connection, used for rate-limiting updates.

Bugfixes
- Handle voltage responses that include a `'v'` unit
- Handle "UNABLE TO CONNECT" responses explicitely, rather than blindly continuing

New/Breaking Changes
- `Async` connections will no longer throw exceptions when the underlying transport is disconnected. They will instead terminate gracefully. Async status is observable via the `Async.running` parameter.

Internal Changes
- Removed newline from all queries, in favor of a single `\r`
- Renamed `async.py` to `asynchronous.py` to avoid conflict with python's async implementation
- Better debug logging in various error cases
- Better PEP8 compliance

0.7.0

New Features
- Added `timeout` argument to OBD and Async constructors that controls the timeout used during initial adapter handshakes.

Bugfixes
- Various python 3 compatibility fixes.
- Repaired `fuel_type` and `obd_compliance` decoders. These were left in an inoperative state following the 6.0 decoder interface changes.

New/Breaking Changes
- OBDCommand decoders are now given the mode and pid bytes at the head of each message. It is the duty of the decoder to ignore and/or use these bytes. This was done to facilitate modes where there are no PIDs.
- OBDCommands now return `None` instead of zero for unknown or un-parsable mode/pid values.

Internal Changes
- Fast mode now dynamically learns the number of responses to each query, rather than blindly asking for the `len(ecus)` responses for everything.

0.6.1

Bugfixes
- pinned source files as UTF-8 to avoid problems when the parser encounters unicode characters.
- fixed readme link to command tables

0.6.0

New Features
- added auto baud-rate detection system
- implemented mode 06 commands for CAN
- implemented more mode 01 commands that were listed as unsupported

New/Breaking Changes
- using Pint for values and units. `OBDResponse.value` now holds Pint Quantities
- for backwards compatibility, use `response.value.magnitude`
- new decoder format, thanks to Pint quantities
- obd.Unit is now a Pint unit registry. All unit names have changed
- using pyserial 3.0 API
- using python logging module, disposed with debug system
- using bytestrings for commands
- FUEL_STATUS now returns a tuple for denoting first and second fuel systems
- descriptions for unknown DTCs are now empty strings
- changed name and description of lone Mode 07 command
- removed deprecated commands
- OBD.get_port_name() --> OBD.port_name()
- OBDCommand.supported --> OBD.supports()
- obd.scanSerial() --> obd.scan_serial()

Internal Changes
- retrieving serial data in blocks, rather than single characters (serial reading is faster)
- renamed OBD.port --> OBD.interface
- using new "Units And Scaling" entries (built for Mode 06) for a few of the standard decoders as well

0.5.1

- fixed syntax error causing crash during auto port finding
- detect and filter out invalid message sizes

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.