Python wrapper around common Linux SocketCAN commands
Project description
PySocketCAN
The pysocketcan
module provides a class to quickly modify Linux SocketCAN parameters directly from Python.
For example, to change the baudrate in Linux you need to run
$ sudo ip link set can0 down
$ sudo ip link set can0 type can bitrate 250000
$ sudo ip link set can0 up
The pysocketcan
equivalent is
>>> can0.baud = 250000
Installation
Use pip to install
$ pip install pysocketcan
Usage
import pysocket as pysc
>>> pysc.view_available() # returns available interfaces
'can0'
>>> can0 = pysc.Interface("can0") # instantiate interface object
>>> can0.on() # set interface up
>>> can0.off() # set interface down
>>> can0.state # returns current state of interface
'STOPPED'
>>> can0.baud = 250000 # sets the baudrate
>>> can0.baud # returns current baudrate
'250000'
>>> can0.status # returns currently active modes
'LOOPBACK,LISTEN-ONLY,TRIPLE-SAMPLING'
>>> can0.listen_only = False # turns mode off
>>> can0.status
'LOOPBACK,TRIPLE-SAMPLING'
If can-utils is installed you can also use
>>> can0.receive() # returns bus message
>>> can0.send(100, 12345678) # adds message to bus
Note:
To function correctly Python needs root priveleges
$ sudo python3
# or
$ sudo venv/bin/python3
Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
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
pysocketcan-0.0.2.tar.gz
(3.3 kB
view hashes)
Built Distribution
Close
Hashes for pysocketcan-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97a8df75dc62260fde1469d38d92d13ecaa545fd5030c77243a230190c2eff95 |
|
MD5 | 92ee7c830dac4f505180f38f4d4e1555 |
|
BLAKE2b-256 | 6bd6792dacf3173e927a5c391c53e9132229a0a2b01c6e851b626815a5f5aba8 |