Skip to content
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)

Custom commands

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.

Docs have been moved to python-obd.readthedocs.org

Clone this wiki locally