# Kvaser’s CANLIB

Kvaser’s CANLib SDK for Windows (also available on Linux).

## Bus

class `can.interfaces.kvaser.canlib.``KvaserBus`(channel, can_filters=None, **config)

  The CAN Bus implemented for the Kvaser interface.

## Internals

The Kvaser `Bus` object with a physical CAN Bus can be operated in two modes; `single_handle` mode with one shared bus handle used for both reading and writing to the CAN bus, or with two separate bus handles. Two separate handles are needed if receiving and sending messages are done in different threads (see Kvaser documentation).

Warning

Any objects inheriting from Bus should not directly use the interface handle(/s).

### Message filtering

The Kvaser driver and hardware only supports setting one filter per handle. If one filter is requested, this is will be handled by the Kvaser driver. If more than one filter is needed, these will be handled in Python code in the `recv` method. If a message does not match any of the filters, `recv()` will return None.