forked from Pbartek/pyobd-pi
-
Notifications
You must be signed in to change notification settings - Fork 378
OBD Commands
brendanwhitfield edited this page Nov 26, 2014
·
23 revisions
A Command
in python-OBD is an object used to query information from the vehicle. They contain all of the information neccessary to perform the query, and decode the cars response. Python-OBD has built in tables for the most common commands. They can be looked up by name, or by mode and PID (for a full list, see commands.py).
import obd
c = obd.commands.RPM
# OR
c = obd.commands['RPM']
# OR
c = obd.commands[1][12] # mode 1, PID 12 (decimal)
If the command you need is not in python-OBDs tables, you can create a new OBDCommand
object. The constructor accepts the following arguments (will become properties).
Argument | Type | Description |
---|---|---|
name | string | (human readability only) |
desc | string | (human readability only) |
mode | string | OBD mode |
pid | string | OBD PID |
bytes | int | Number of bytes expected in response |
decoder | callable | Function used for decoding the hex response |
supported (optional) | bool | Flag to prevent the sending of unsupported commands |
The decoder
argument is a function of following form.
def <name>(_hex):
...
return (<value>, <unit>)
The _hex
argument is the data recieved from the car, and is guaranteed to be the size of the bytes
property specified in the OBDCommand.