This interface adds support for CAN controllers by Vector. Only Windows is supported.

By default this library uses the channel configuration for CANalyzer. To use a different application, open Vector Hardware Config program and create a new application and assign the channels you may want to use. Specify the application name as app_name='Your app name' when constructing the bus or in a config file.

Channel should be given as a list of channels starting at 0.

Here is an example configuration file connecting to CAN 1 and CAN 2 for an application named “python-can”:

interface = vector
channel = 0, 1
app_name = python-can

If you are using Python 2.7 it is recommended to install pywin32, otherwise a slow and CPU intensive polling will be used when waiting for new messages.


class can.interfaces.vector.VectorBus(channel, can_filters=None, poll_interval=0.01, receive_own_messages=False, bitrate=None, rx_queue_size=16384, app_name='CANalyzer', serial=None, fd=False, data_bitrate=None, sjw_abr=2, tseg1_abr=6, tseg2_abr=3, sjw_dbr=2, tseg1_dbr=6, tseg2_dbr=3, **kwargs)[source]

The CAN Bus implemented for the Vector interface.

  • channel (Union[int, Sequence[int], str]) – The channel indexes to create this bus with. Can also be a single integer or a comma separated string.

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

  • receive_own_messages (bool) – See can.BusABC.

  • poll_interval (float) – Poll interval in seconds.

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

  • rx_queue_size (int) – Number of messages in receive queue (power of 2). CAN: range 16…32768 CAN-FD: range 8192…524288

  • app_name (Optional[str]) – Name of application in Vector Hardware Config. If set to None, the channel should be a global channel index.

  • serial (Optional[int]) – Serial number of the hardware to be used. If set, the channel parameter refers to the channels ONLY on the specified hardware. If set, the app_name does not have to be previously defined in Vector Hardware Config.

  • fd (bool) – If CAN-FD frames should be supported.

  • data_bitrate (Optional[int]) – Which bitrate to use for data phase in CAN FD. Defaults to arbitration bitrate.

  • sjw_abr (int) – Bus timing value sample jump width (arbitration).

  • tseg1_abr (int) – Bus timing value tseg1 (arbitration)

  • tseg2_abr (int) – Bus timing value tseg2 (arbitration)

  • sjw_dbr (int) – Bus timing value sample jump width (data)

  • tseg1_dbr (int) – Bus timing value tseg1 (data)

  • tseg2_dbr (int) – Bus timing value tseg2 (data)

  • can.CanInterfaceNotImplementedError – If the current operating system is not supported or the driver could not be loaded.

  • can.CanInitializationError – If the bus could not be set up. This may or may not be a can.interfaces.vector.VectorInitializationError.

exception can.interfaces.vector.VectorError(error_code, error_string, function)[source]