CANard is a library for dealing with Controller Area Network (CAN) data from Python.
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.
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.
Install dependancies:
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())