National Instruments NI-CAN#

This interface adds support for NI-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]#

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 the can_filters parameter. Using set_filters() does not work.

Parameters
  • channel (str) – Name of the object to open (e.g. “CAN0”)

  • bitrate (Optional[int]) – Bitrate in bit/s

  • can_filters (Optional[Sequence[Union[can.typechecking.CanFilter, can.typechecking.CanFilterExtended]]]) – See can.BusABC.set_filters().

  • log_errors (bool) – If True, communication errors will appear as CAN messages with is_error_frame set to True and arbitration_id will identify the error (default True)

Raises
Return type

None

exception can.interfaces.nican.NicanError(function, error_code, arguments)[source]#

Error from NI-CAN driver.

Parameters

error_code (int) –

Return type

None

exception can.interfaces.nican.NicanInitializationError(function, error_code, arguments)[source]#
Parameters

error_code (int) –

Return type

None