SystecCAN Plugin verwenden
Das SystecCAN-Plugin kapselt die Low-Level-API für die Arbeit mit den SYS TEC CAN-Adaptern.
Dieses Plugin benötigt die SYS TEC CAN-Gerätetreiber und die usbcan32.dll (usbcan64.dll für 64 Bit Builds).
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("systeccan"))) { // plugin available }
Dabei ist systeccan der Name des Plugins.
Anschließend kann eine Verbindung zu einer bestimmten Schnittstelle hergestellt werden:
QString errorString;QCanBusDevice *device = QCanBus::instance()->createDevice( QStringLiteral("systeccan"), QStringLiteral("can0.0"), &errorString);if (!device) { // Fehlerbehandlung geht hier qDebug << errorString; } else { device->connectDevice(); }
Dabei ist can0.0 der Name der aktiven CAN-Schnittstelle (Schnittstelle 0, Kanal 0). Das SystecCAN-Plugin unterstützt 64 USB-Schnittstellen (sog. Module) von can0.0 bis can63.1. Jedes Modul kann einen oder zwei Kanäle haben, sie können über den Index canX.0 oder canX.1 angesprochen werden. Die Methode availableDevices() gibt eine Liste der aktuell verfügbaren Geräte zurück.
Hinweis: SYS TEC bietet auch CAN-Schnittstellen mit 8 oder 16 Kanälen an. Diese Geräte bestehen aus einem USB-Hub und mehreren zweikanaligen Modulen im Inneren.
Das Gerät ist nun für das Schreiben und Lesen von CAN-Frames geöffnet:
QCanBusFrame frame; frame.setFrameId(8); QByteArray payload("A36E"); frame.setPayload(payload); device->writeFrame(frame);
Das Lesen kann mit der Methode readFrame() erfolgen. Das Signal framesReceived() wird ausgegeben, wenn mindestens ein neuer Frame zum Lesen verfügbar ist:
QCanBusFrame frame = device->readFrame();
SystecCAN unterstützt die folgenden Konfigurationen, die über setConfigurationParameter() gesteuert werden können:
Schlüssel der Konfigurationsparameter | Beschreibung |
---|---|
QCanBusDevice::BitRateKey | Bestimmt die Bitrate der CAN-Bus-Verbindung. Die folgenden Bitraten werden unterstützt: 10000, 20000, 50000, 100000, 125000, 250000, 500000, 800000 und 1000000. Beachten Sie, dass dieser Konfigurationsparameter nur eingestellt werden kann, wenn die QCanBusDevice nicht angeschlossen ist. |
QCanBusDevice::ReceiveOwnKey | Der Empfang von CAN-Frames auf demselben Kanal, der den CAN-Frame gesendet hat, ist standardmäßig deaktiviert. Wenn diese Option aktiviert ist, werden die so empfangenen Frames mit QCanBusFrame::hasLocalEcho() markiert. |
SystecCAN 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.