Library for interacting with Controller Area Network (CAN)
CANard is a library for dealing with Controller Area Network (CAN) data from Python.
Using a CANtact
The CANtact tool is directly supported by CANard. Using it requires pySerial, which can be installed with pip:
pip install pyserial
This examples goes on bus and prints received messages:
from canard import can from canard.hw import cantact dev = cantact.CantactDev("/dev/cu.usbmodem14511") dev.start() while True: print(dev.recv())
You will need to set the serial port (/dev/cu.usbmodem14511 in this example) correctly.
Using Peak CAN Tools
Peak CAN tools (also known as GridConnect) are support through SocketCAN. This functionality is only available on Linux
For kernels 3.6 and newer, skip to step 5.
Download the Peak Linux driver.
sudo apt-get install libpopt-dev
Build the driver:
cd peak-linux-driver-x.xx make sudo make install
Enable the driver:
sudo modprobe pcan
Connect a Peak CAN tool, ensure it appears in /proc/pcan. Note the network device name (ie, can0)
Bring the corresponding network up:
sudo ifconfig can0 up
The device can now be accessed as a SocketCanDev. This examples goes on bus and prints received messages:
from canard import can from canard.hw import socketcan dev = socketcan.SocketCanDev("can0") dev.start() while True: print(dev.recv())