Library to control the CAROA04 CAN-IO expander device from eletechsup.
Project description
Library to control the CAROA04 CAN-IO expander device from eletechsup.
Free software: MIT license
Documentation: https://caroa04.readthedocs.io.
Installation
You can install “caroa04” via pip from PyPI:
$ pip install caroao4
Usage
You can instantiate a CaroA04 object and start it to communicate with the device as follows.
from caroa04 import CaroA04
caro = CaroA04()
caro.start(0xE0, 'pcan', 250000, 'PCAN_USBBUS1') # start communication
caro.do1.phys = True # set do1 state to True
print(caro.do1.phys) # read do1 state
print(caro.di1.phys) # read di1 state
print(caro.bitrate.phys) # read current bitrate
caro.bitrate.phys = 500000 # set different baudrate (will require device power cycle)
print(caro.node_id.phys) # read current address code
caro.node_id.phys = 0xE1 # set address code (will require device power cycle)
caro.shutdown() # free the bus
In order to share the bus with other participants, you can assign the bus attribute of the CaroA04 object before starting it. You should simply then add CaroA04’s listener to the existing bus’ notifier.
import canopen
from caroa04 import CaroA04
nw = canopen.Network()
nw.connect(interface='pcan', bitrate=250000, channel='PCAN_USBBUS1')
caro = CaroA04()
caro.bus = nw.bus # use the bus already started by canopen
nw.notifier.add_listener(caro.listener) # add listener so that we can receive messages
caro.start(0xE0, 'pcan') # start communication
caro.shutdown() # free the bus
Features
This library uses the python-can library to communicate with the device. Please refer to its documentation to know about all the CAN interfaces that can be used with this library (https://python-can.readthedocs.io/en/stable/)
- The device has 4 digital outputs and 4 digital inputs. Hence the signals can be read/written by using the attributes of the CaroA04 class:
do1, do2, do3, do4 : digital output 1 to digital output 4
di1, di2, di3, di4 : digital input 1 to digital input 4
bitrate, node_id : bitrate and address code of the device
- Each signal has a raw value and a physical value. For example, the device does not understand a bitrate in bps. It expects an enumeration that it will interpret. So it can either be set by writing its physical value (bitrate.phys = 250000) or by writing its raw value (bitrate.raw) as follows:
0: 5 kbps
1: 10 kbps
2: 20 kbps
3: 50 kbps
4: 100 kbps
5: 120 kbps
6: 200 kbps
7: 250 kbps
8: 400 kbps
9: 500 kbps
10: 800 kbps
11: 1000 kbps
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file caroa04-1.0.0.tar.gz
.
File metadata
- Download URL: caroa04-1.0.0.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb93db71bdfad4fc4dadae1e54ad89c291aeda43cb851befabdfa8ebe7d117a8 |
|
MD5 | 40470744de9bd5cad2cbab1c6f96640c |
|
BLAKE2b-256 | c4811c20535131e52131aa36f6ee7478926b334a47998d0dd9f77f0ee0035de6 |
File details
Details for the file caroa04-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: caroa04-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bd3f94c9c24488b5536735c4f2f8a077fa6372455fdca07ef5f6c15cbbf9e0e |
|
MD5 | e0e01d5183d0c44ca02745739513051f |
|
BLAKE2b-256 | d375cd1004e51b993629a8e13d2802615ded5b7177bb6e298c27e704fc200a9a |