Using TinyCAN Backend
The TinyCAN backend encapsulates the low-level API to work with the MHS Elektronik 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 == "tinycan") { // were found break; } }
Where tinycan is the backend name.
Next, a connection to a specific interface can be established:
QCanBusDevice *device = QCanBus::instance()->createDevice("tinycan", QStringLiteral("channela")); device->connectDevice();
Where channela is the active CAN interface name. The TinyCAN backend provides two interfaces, channela and channelb.
Note: Only the USB 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 new frames are available for reading:
QCanBusFrame frame = device->readFrame();
TinyCAN 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: 10000, 20000, 50000, 100000, 125000, 250000, 500000, 800000, 1000000. |