Skip to main content

python-can interface for Netronics CANdo and CANdoISO devices

Project description

python-can-cando

PyPI - Implementation PyPI - Version PyPI Downloads PyPI - Python Version


Description

This module is a plugin that lets you use netronics' can adapters (namely the CANdo and CANdoISO devices) in python-can's plugin interface.

Installation

You should have installed the netronics' CANdo drivers before using this library; otherwise you will get a DLL error (or, under linux, a shared library error).

pip install python-can-cando

Usage

Just like any other python-can plugin, you can access the class like so:

import can
bus = can.Bus(interface="cando", channel=0)
# All of your other python-can code...

Or you could just instantiate it directly:

from can_cando import CANdoBus
bus = CANdoBus(channel=0)
# All of your other python-can code...

Extra information

There are some inherent limitations to this device; you should really check the programmer's guide and the actual implementation of some methods, such as the cando_transmit's documentation on how to use the device's internal repeat buffers; the number of such available buffers and message timing periodicity is fixed and limited. The implementation of BusABC.send_periodic is intentionally dummy-overridden for this reason.

Anyways, the programmer's guide and all the relative datasheets for the devices can be downloaded from netronics' download page.

A note on bus load

I found that the device tends to get the CANDO_CAN_RX_OVERRUN status if there is either too much bus load or sudden spikes of bus load (and therefore it loses some can messages); if you have other nodes in the network that send a lot of periodic messages with a short period, you might consider using the appropriate filters, rather that just reading all the messages and filtering them in software.

Compatibility

I developed this library with a CANdoISO device; I don't have a CANdo device to test it, but it should work just as well. There are some minor differences between the two (for example a different clock frequency), but from a software point of view the interfaces are very similar.

This library was developed and tested on Windows 10 and python 3.12, but it should be good to go with python up till 3.7 (checked with vermin) and non-Windows OSs.

Anyways, any feedback is appreciated and welcome; just open an issue or a pull request and I'll gladly take a look at it.

License

python-can-cando is distributed under the terms of the LGPL-3.0-or-later license.

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

python_can_cando-1.0.6.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

python_can_cando-1.0.6-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file python_can_cando-1.0.6.tar.gz.

File metadata

  • Download URL: python_can_cando-1.0.6.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for python_can_cando-1.0.6.tar.gz
Algorithm Hash digest
SHA256 053b30d4a01b80c856e9aac53dc3f3caa3792ccc26c8e321dc9e77317f104cfe
MD5 0c26438298f4cd9d7e105bb493bcf8c8
BLAKE2b-256 b47e9a25bce573a287b2a6f20164226126cced8ce14753d9487b26220b0daefc

See more details on using hashes here.

File details

Details for the file python_can_cando-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for python_can_cando-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 dc6d7d68922b8f78474061448d1454d22df4bc9bc35bbd8b3c9172d7567b92c0
MD5 2e7b0b3ffaaea24c606c769c6a1dd702
BLAKE2b-256 87feb5b23265b6d4132a777da6f6cae5fd0e0872e554c2e547e6dfe0a83ffef5

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