NI-CAN¶
This interface adds support for CAN controllers by National Instruments.
Warning
NI-CAN only seems to support 32-bit architectures so if the driver can’t be loaded on a 64-bit Python, try using a 32-bit version instead.
Warning
CAN filtering has not been tested thoroughly and may not work as expected.
Bus¶
-
class
can.interfaces.nican.
NicanBus
(channel, can_filters=None, bitrate=None, log_errors=True, **kwargs)[source]¶ Bases:
can.bus.BusABC
The CAN Bus implemented for the NI-CAN interface.
Warning
This interface does implement efficient filtering of messages, but the filters have to be set in
__init__()
using thecan_filters
parameter. Usingset_filters()
does not work.Parameters: - channel (str) – Name of the object to open (e.g. ‘CAN0’)
- bitrate (int) – Bitrate in bits/s
- can_filters (list) – See
can.BusABC.set_filters()
. - log_errors (bool) – If True, communication errors will appear as CAN messages with
is_error_frame
set to True andarbitration_id
will identify the error (default True)
Raises: can.interfaces.nican.NicanError – If starting communication fails
-
reset
()[source]¶ Resets network interface. Stops network interface, then resets the CAN chip to clear the CAN error counters (clear error passive state). Resetting includes clearing all entries from read and write queues.
-
send
(msg, timeout=None)[source]¶ Send a message to NI-CAN.
Parameters: msg (can.Message) – Message to send Raises: can.interfaces.nican.NicanError – If writing to transmit buffer fails. It does not wait for message to be ACKed currently.