TinyCAN Plugin verwenden

Das TinyCAN-Plugin kapselt die Low-Level-API für die Arbeit mit den CAN-Adaptern von MHS Elektronik.

Hinweis: Die TinyCAN-Adapter verwenden virtuelle serielle Schnittstellen. Um mit den TinyCAN-Adaptern unter Linux zu kommunizieren, muss der Benutzer über entsprechende Zugriffsrechte verfügen. Normalerweise werden diese Rechte allen Benutzern in der Gruppe "dialout" erteilt.

Erstellen von CAN-Bus-Geräten

Zunächst ist zu prüfen, ob QCanBus das gewünschte Plugin bereitstellt:

if (QCanBus::instance()->plugins().contains(QStringLiteral("tinycan"))) {
    // plugin available
}

Dabei ist tinycan der Name des Plugins.

Als nächstes kann eine Verbindung zu einer bestimmten Schnittstelle hergestellt werden:

QCanBusDevice *device = QCanBus::instance()->createDevice(
    QStringLiteral("tinycan"), QStringLiteral("can0.0"));
device->connectDevice();

Dabei ist can0.0 der Name der aktiven CAN-Schnittstelle. TinyCAN bietet derzeit nur die Schnittstelle can0.0 an, die im TinyCAN-Plugin auf INDEX_CAN_KANAL_A abgebildet ist.

Hinweis: Die Funktion availableDevices() gibt derzeit immer ein Gerät "can0.0" zurück, da es im Moment keine Möglichkeit gibt, die verfügbaren CAN-Adapter zu erkennen.

Hinweis: Nur die USB-Adapter werden derzeit von diesem Plugin unterstützt.

Das Gerät ist nun offen für das Schreiben und Lesen von CAN-Frames:

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

Das Lesen kann mit der Methode readFrame() durchgeführt werden. Das Signal framesReceived() wird ausgegeben, wenn mindestens ein neuer Frame zum Lesen verfügbar ist:

QCanBusFrame frame = device->readFrame();

TinyCAN unterstützt die folgenden Konfigurationen, die über setConfigurationParameter() gesteuert werden können:

Konfigurationsparameter SchlüsselBeschreibung
QCanBusDevice::BitRateKeyBestimmt die Bitrate der CAN-Bus-Verbindung. Die folgenden Bitraten werden unterstützt: 10000, 20000, 50000, 100000, 125000, 250000, 500000, 800000, 1000000.

TinyCAN unterstützt die folgenden zusätzlichen Funktionen:

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.