Skip to main content

CAN BUS tools.

Project description

buildstatus coverage

About

CAN BUS tools.

  • DBC file mangling.

  • candump output decoder.

Documentation: http://cantools.readthedocs.org/en/latest

Installation

pip install cantools

Example usage

Scripting

An example parsing and using a small DBC-file:

>>> import cantools
>>> from pprint import pprint
>>> db = cantools.db.load_file('tests/files/motohawk.dbc')
>>> db
version('1.0')

node('PCM1', None)
node('FOO', None)

message('ExampleMessage', 0x1f0, 8, 'Example message used as template in MotoHawk models.')
  signal('Temperature', 7, 12, 'big_endian', True, 0.01, 250, 229.53, 270.47, 'degK', False, None, None, None)
  signal('AverageRadius', 1, 6, 'big_endian', False, 0.1, 0, 0.0, 5.0, 'm', False, None, None, '')
  signal('Enable', 0, 1, 'big_endian', False, 1.0, 0, 0.0, 0.0, '-', False, None, None, None)

>>> db.messages
[message('ExampleMessage', 0x1f0, 8, 'Example message used as template in MotoHawk models.')]
>>> example_message = db.messages[0]
>>> example_message.comment
'Example message used as template in MotoHawk models.'
>>> pprint(example_message.signals)
[signal('Temperature', 7, 12, 'big_endian', True, 0.01, 250, 229.53, 270.47, 'degK', False, None, None, None),
 signal('AverageRadius', 1, 6, 'big_endian', False, 0.1, 0, 0.0, 5.0, 'm', False, None, None, ''),
 signal('Enable', 0, 1, 'big_endian', False, 1.0, 0, 0.0, 0.0, '-', False, None, None, None)]
>>> db.nodes
[node('PCM1', None), node('FOO', None)]
>>> db.version
'1.0'
>>>

The example continues encoding a message and sending it on a CAN bus using the python-can package.

>>> import can
>>> can.rc['interface'] = 'socketcan_ctypes'
>>> can.rc['channel'] = 'vcan0'
>>> can_bus = can.interface.Bus()
>>> data = example_message.encode({'Temperature': 250.1, 'AverageRadius': 3.2, 'Enable': 1})
>>> message = can.Message(arbitration_id=example_message.frame_id, data=data)
>>> can_bus.send(message)
>>>

See the test suite for additional examples: https://github.com/eerimoq/cantools/blob/master/tests/test_cantools.py

Command line tool

Decode CAN frames captured with the Linux program candump.

$ candump vcan0 | cantools decode motohawk.dbc
  vcan0  000001F0   [7]  01 FA 0F 00 00 00 00 :: ExampleMessage(Temperature: 249.88 degK, AverageRadius: 0.0 m, Enable: 1.0 -)
  vcan0  000001F0   [7]  01 FA 0F 00 00 00 00 :: ExampleMessage(Temperature: 249.88 degK, AverageRadius: 0.0 m, Enable: 1.0 -)
  vcan0  000001F0   [7]  01 FA 0F 00 00 00 00 :: ExampleMessage(Temperature: 249.88 degK, AverageRadius: 0.0 m, Enable: 1.0 -)

Contributing

  1. Fork the repository.

  2. Implement the new feature or bug fix.

  3. Implement test case(s) to ensure that future changes do not break legacy.

  4. Run the test suite for Python 2 and Python 3. Make sure all tests pass.

    python setup.py test
    python3 setup.py test
  5. Create a pull request.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cantools-5.2.0.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

cantools-5.2.0-py2.py3-none-any.whl (14.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cantools-5.2.0.tar.gz.

File metadata

  • Download URL: cantools-5.2.0.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cantools-5.2.0.tar.gz
Algorithm Hash digest
SHA256 9347f1f00aafdb6a90293954db262b95c4daf121c449013ca8a5e068729828dd
MD5 45207cee1cd984f14cc606d28028962b
BLAKE2b-256 38fd41163a0aa3a9ca26533188002c94e46e583183af9cbe8b4238abca165f94

See more details on using hashes here.

File details

Details for the file cantools-5.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cantools-5.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 800d7b9675cdc36e2669d21496bce3239c1d91418a7158515a2aeef647b95b94
MD5 66bfe6d173687f9c3c209137b7f9327f
BLAKE2b-256 25c5443330ba25534b6f598051a257474cf65861c28d76eb4de3b57a8b3ec62c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page