Skip to main content

Library to control the CAROA04 CAN-IO expander device from eletechsup.

Project description

https://img.shields.io/pypi/v/caroa04.svg Python versions See Build Status on GitHub Actions Documentation Status

Library to control the CAROA04 CAN-IO expander device from eletechsup.

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 with device node ID 0xE0

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.stop()  # 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)  # start communication with node ID 0xE0
caro.stop()  # 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

caroa04-1.0.2.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

caroa04-1.0.2-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file caroa04-1.0.2.tar.gz.

File metadata

  • Download URL: caroa04-1.0.2.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.0

File hashes

Hashes for caroa04-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a5ccfe5dccce33ce2c98e9fe8d240cb278d04bec4629a2ec27b91ea3b61b5a33
MD5 d5aab677838beafb744d2a775fa91bed
BLAKE2b-256 8c3d7ba1f5f70bc0f6ffa3607d01f53a0f61ecc42d65d49d708a4d7369c47468

See more details on using hashes here.

File details

Details for the file caroa04-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: caroa04-1.0.2-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

Hashes for caroa04-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 741368726704c3991b7fa8f69ae36dfea0b0b3bdb8f8eae97634296bd60f95d3
MD5 981ec9778b485f98d5ee25b1ea8af87d
BLAKE2b-256 75046baf5abe523811a03eeb4455d011c6700a734a2bce4d20aff26fbc589511

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page