Using PeakCAN Backend | Qt Serial Bus 5.6

Qt Documentation (Technology Preview) | Qt Serial Bus | Using PeakCAN Backend

Qt 5.6.2 Reference Documentation

# Using PeakCAN Backend

The PeakCAN backend encapsulates the low-level API to work with the PEAK-System CAN adapters.

## Creating CAN Bus Devices

At first it is necessary to check that QCanBus provides the desired backend:

      foreach (const QByteArray &backend, QCanBus::instance()->plugins()) {
          if (backend == "peakcan") {
              // were found
              break;
          }
      }

Where peakcan is the backend name.

Next, a connection to a specific interface can be established:

      QCanBusDevice *device = QCanBus::instance()->createDevice("peakcan", QStringLiteral("usbbus1"));
      device->connectDevice();

Where usbbus1 is the active CAN interface name. The PeakCAN backend supports eight USB interfaces from usbbus1 to usbbus8 and eight PCI interfaces from pcibus1 to pcibus8.

Note: Only the USB and PCI adapters are currently supported by this backend.

The device is now open for writing and reading CAN frames:

      QCanBusFrame frame;
      frame.setFrameId(8);
      QByteArray payload("A36E");
      frame.setPayload(payload);
      device->writeFrame(frame);

The reading can be done using the readFrame() method. The framesReceived() signal is emitted when a new frame is available for reading:

      QCanBusFrame frame = device->readFrame();

PeakCAN supports the following configurations that can be controlled through setConfigurationParameter():

Configuration parameter key | Description
--- | ---
QCanBusDevice::BitRateKey | Determines the bit rate of the CAN bus connection. The following bit rates are supported: 5000, 10000, 20000, 33000, 47000, 50000, 83000, 95000, 100000, 125000, 250000, 500000, 800000, 1000000. Note that this configuration parameter can only be adjusted while the QCanBusDevice is not connected.