All Projects → hardbyte → Python Can

hardbyte / Python Can

Licence: lgpl-3.0
The can package provides controller area network support for Python developers

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Python Can

SparkFun CAN-Bus Arduino Library
No description or website provided.
Stars: ✭ 132 (-77.24%)
Mutual labels:  can-bus
esp32-f9p-io-board
An IO-PCB (two motor-driver/H-bridge, CAN, RS232, ADS1115, relay, ethernet, ardusimple f9p compatible connector) with an ESP32 for 12V power, three 15V tolerant analog inputs, three 5V tolerant inputs.
Stars: ✭ 24 (-95.86%)
Mutual labels:  can-bus
Carhackingtools
Install and Configure Common Car Hacking Tools.
Stars: ✭ 374 (-35.52%)
Mutual labels:  can-bus
RejsaCAN-ESP32
ESP32 board with CAN interface, runs on 12V power (with auto shutdown)
Stars: ✭ 88 (-84.83%)
Mutual labels:  can-bus
cpp-can-isotp
C++ implementation of CAN ISO 15765-2 also known as CAN ISO transport protocol. CPP CAN isotp.
Stars: ✭ 14 (-97.59%)
Mutual labels:  can-bus
Arduino Mcp2515
Arduino MCP2515 CAN interface library
Stars: ✭ 277 (-52.24%)
Mutual labels:  can-bus
Volvo-CAN-Gauge
Reverse engineering the Volvo VIDA protocol and CAN network to gather diagnostic information not available via OBD2 on Volvo cars.
Stars: ✭ 15 (-97.41%)
Mutual labels:  can-bus
Pyvit
pyvit: Python Vehicle Interface Toolkit
Stars: ✭ 468 (-19.31%)
Mutual labels:  can-bus
ecu-simulator
OBD-II ECU Simulator
Stars: ✭ 24 (-95.86%)
Mutual labels:  can-bus
Candevstudio
Development tool for CAN bus simulation
Stars: ✭ 326 (-43.79%)
Mutual labels:  can-bus
CAN-Bus Shield
No description or website provided.
Stars: ✭ 75 (-87.07%)
Mutual labels:  can-bus
CANopen-monitor
An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.
Stars: ✭ 15 (-97.41%)
Mutual labels:  can-bus
Can reverse engineering
Automated Payload Reverse Engineering Pipeline for the Controller Area Network (CAN) protocol
Stars: ✭ 282 (-51.38%)
Mutual labels:  can-bus
HPS2FPGAmapping
SoCFPGA: Mapping HPS Peripherals, like I²C or CAN, over the FPGA fabric to FPGA I/O and using embedded Linux to control them (Intel Cyclone V)
Stars: ✭ 27 (-95.34%)
Mutual labels:  can-bus
Ddt4all
OBD tool
Stars: ✭ 439 (-24.31%)
Mutual labels:  can-bus
UDTStudio
UniSwarm Tools for UDT interface and CANOpen in Qt5
Stars: ✭ 13 (-97.76%)
Mutual labels:  can-bus
Twizy-Virtual-BMS
This is an Arduino library providing an emulation of the CAN communication protocol of the BMS (battery management system) on a Renault Twizy.
Stars: ✭ 57 (-90.17%)
Mutual labels:  can-bus
Seeed arduino can
Seeed Arduino CAN-BUS library - MCP2518FD&MCP2515&MCP2551
Stars: ✭ 535 (-7.76%)
Mutual labels:  can-bus
Scriptcommunicator serial Terminal
Scriptable cross-platform data terminal which supports: serial port, UDP, TCP, SPI, I2C and CAN.
Stars: ✭ 462 (-20.34%)
Mutual labels:  can-bus
Caringcaribou
A friendly car security exploration tool for the CAN bus
Stars: ✭ 298 (-48.62%)
Mutual labels:  can-bus

python-can

|release| |downloads| |downloads_monthly| |formatter|

|docs| |build_travis| |build_appveyor| |coverage|

.. |release| image:: https://img.shields.io/pypi/v/python-can.svg :target: https://pypi.python.org/pypi/python-can/ :alt: Latest Version on PyPi

.. |downloads| image:: https://pepy.tech/badge/python-can :target: https://pepy.tech/project/python-can :alt: Downloads on PePy

.. |downloads_monthly| image:: https://pepy.tech/badge/python-can/month :target: https://pepy.tech/project/python-can/month :alt: Monthly downloads on PePy

.. |formatter| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/python/black :alt: This project uses the black formatter.

.. |docs| image:: https://readthedocs.org/projects/python-can/badge/?version=stable :target: https://python-can.readthedocs.io/en/stable/ :alt: Documentation

.. |build_travis| image:: https://img.shields.io/travis/hardbyte/python-can/develop.svg?label=Travis%20CI :target: https://travis-ci.org/hardbyte/python-can/branches :alt: Travis CI Server for develop branch

.. |build_appveyor| image:: https://img.shields.io/appveyor/ci/hardbyte/python-can/develop.svg?label=AppVeyor :target: https://ci.appveyor.com/project/hardbyte/python-can/history :alt: AppVeyor CI Server for develop branch

.. |coverage| image:: https://codecov.io/gh/hardbyte/python-can/branch/develop/graph/badge.svg :target: https://codecov.io/gh/hardbyte/python-can/branch/develop :alt: Test coverage reports on Codecov.io

.. image:: https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/hardbyte/python-can&style=flat :target: https://mergify.io :alt: Mergify Status

The C\ ontroller A\ rea N\ etwork is a bus standard designed to allow microcontrollers and devices to communicate with each other. It has priority based bus arbitration and reliable deterministic communication. It is used in cars, trucks, boats, wheelchairs and more.

The can package provides controller area network support for Python developers; providing common abstractions to different hardware devices, and a suite of utilities for sending and receiving messages on a can bus.

The library currently supports Python 3.6+ as well as PyPy 3 and runs on Mac, Linux and Windows.

============================== =========== Library Version Python


2.x 2.6+, 3.4+ 3.x 2.7+, 3.5+ 4.x (currently on develop) 3.6+ ============================== ===========

Features

  • common abstractions for CAN communication
  • support for many different backends (see the docs <https://python-can.readthedocs.io/en/stable/interfaces.html>__)
  • receiving, sending, and periodically sending messages
  • normal and extended arbitration IDs
  • limited CAN FD <https://en.wikipedia.org/wiki/CAN_FD>__ support
  • many different loggers and readers supporting playback: ASC (CANalyzer format), BLF (Binary Logging Format by Vector), CSV, SQLite and Canutils log
  • efficient in-kernel or in-hardware filtering of messages on supported interfaces
  • bus configuration reading from file or environment variables
  • CLI tools for working with CAN buses (see the docs <https://python-can.readthedocs.io/en/stable/scripts.html>__)
  • more

Example usage

.. code:: python

# import the library
import can

# create a bus instance
# many other interfaces are supported as well (see below)
bus = can.Bus(interface='socketcan',
              channel='vcan0',
              receive_own_messages=True)

# send a message
message = can.Message(arbitration_id=123, is_extended_id=True,
                      data=[0x11, 0x22, 0x33])
bus.send(message, timeout=0.2)

# iterate over received messages
for msg in bus:
    print("{:X}: {}".format(msg.arbitration_id, msg.data))

# or use an asynchronous notifier
notifier = can.Notifier(bus, [can.Logger("recorded.log"), can.Printer()])

You can find more information in the documentation, online at python-can.readthedocs.org <https://python-can.readthedocs.org/en/stable/>__.

Discussion

If you run into bugs, you can file them in our issue tracker <https://github.com/hardbyte/python-can/issues>__ on GitHub.

There is also a python-can <https://groups.google.com/forum/#!forum/python-can>__ mailing list for development discussion.

Stackoverflow <https://stackoverflow.com/questions/tagged/can+python>__ has several questions and answers tagged with python+can.

Wherever we interact, we strive to follow the Python Community Code of Conduct <https://www.python.org/psf/codeofconduct/>__.

Contributing

See doc/development.rst <doc/development.rst>__ for getting started.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].