Verwendung des PeakCAN-Plugins
Das PeakCAN-Plugin kapselt die Low-Level-API für die Arbeit mit den CAN-Adaptern des PEAK-Systems.
Dieses Plugin benötigt die PCAN-Gerätetreiber und die PCAN-Basic-Bibliothek in der Version 4.4.0 oder höher unter Windows (pcanbasic.dll) bzw. 4.0.0 unter Linux (libpcanbasic.so). Unter macOS benötigt das Plugin die PCBUSB-Bibliothek von UV Software, Version 0.9 oder höher.
Hinweis: Die Qt-Versionen 5.14 bis 6.4 sind nur mit der PCBUSB-Bibliothek Version 0.8.1 kompatibel, während Qt-Versionen 6.5 und höher eine PCBUSB-Version 0.9 oder höher erfordern.
Hinweis: „ QCanBusDeviceInfo::alias“ () wird nur unter Windows und mit PCAN-Basic 4.4.0 oder höher unterstützt.
Erstellen von CAN-Bus-Geräten
Zunächst muss überprüft werden, ob QCanBus das gewünschte Plugin bereitstellt:
if (QCanBus::instance()->plugins().contains(QStringLiteral("peakcan"))) {
// plugin available
}Dabei lautet „peakcan“ der Name des Plugins.
Anschließend kann eine Verbindung zu einer bestimmten Schnittstelle hergestellt werden:
QString errorString;
QCanBusDevice*device = QCanBus::instance()->createDevice(
QStringLiteral("peakcan"), QStringLiteral("usb0"), &errorString);
if (!device) {
// Hier erfolgt die Fehlerbehandlung
qDebug << errorString;
} else {
device->connectDevice();
}Dabei ist „usb0“ der Name der aktiven CAN-Schnittstelle. Das PeakCAN-Plugin unterstützt 16 USB-Schnittstellen von „usb0“ bis „usb15“ sowie 16 PCI-Schnittstellen von „pci0“ bis „pci15“. Die Methode „ availableDevices()“ gibt eine Liste der derzeit verfügbaren Geräte zurück.
Hinweis: Derzeit werden von diesem Pluginnur USB- und PCI-Adapter unterstützt.
Hinweis: Unter macOS werden derzeit nur USB-Adapter von diesem Plugin unterstützt.
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 Auslesen kann mit der Methode ` readFrame()` erfolgen. Das Signal ` framesReceived()` wird ausgelöst, sobald mindestens ein neuer Frame zum Auslesen verfügbar ist:
QCanBusFrame frame = device->readFrame();PeakCAN unterstützt die folgenden Konfigurationen, die über ` setConfigurationParameter()` gesteuert werden können:
| Schlüssel für den Konfigurationsparameter | Beschreibung |
|---|---|
| QCanBusDevice::CanFdKey | Diese Konfigurationsoption legt fest, ob CAN-FD-Frames gesendet oder empfangen werden dürfen. Standardmäßig ist diese Option deaktiviert. Zur Aktivierung dieser Option ist CAN-FD-kompatible Hardware erforderlich. |
| QCanBusDevice::BitRateKey | Legt die Bitrate der CAN-Bus-Verbindung fest. Die folgenden Bitraten werden unterstützt: 5000, 10000, 20000, 33000, 47000, 50000, 83000, 95000, 100000, 125.000, 250.000, 500.000, 800.000, 1.000.000. Ist die Option „ QCanBusDevice::CanFdKey “ aktiviert, sind die Datenbitraten auf 125.000, 250.000, 500.000 oder 1.000.000 begrenzt. Beachten Sie, dass dieser Konfigurationsparameter nur angepasst werden kann, solange das „ QCanBusDevice “ nicht angeschlossen ist. |
| QCanBusDevice::DataBitRateKey | Legt die Datenbitrate der CAN-FD-Busverbindung fest. Die Option „ QCanBusDevice::CanFdKey “ muss aktiviert sein, damit diese Option eingestellt werden kann. Mögliche Datenbitraten sind 2.000.000, 4.000.000, 8.000.000 oder 10.000.000. Beachten Sie, dass dieser Konfigurationsparameter nur angepasst werden kann, solange das „ QCanBusDevice “ nicht angeschlossen ist. |
PeakCAN unterstützt die folgenden zusätzlichen Funktionen:
- QCanBusDevice::resetController()
- QCanBusDevice::busStatus()
- QCanBusDeviceInfo::alias() (nur Windows und PCAN-Basic >= 4.4.0): Gibt die PCAN_DEVICE_ID zurück, die mit PCAN-View auf einen benutzerdefinierten Wert zwischen 0 und 255 bzw. 0 und 4294967295 (je nach Gerät) gesetzt werden kann. Der Standardwert ist 255 bzw. 4294967295.
© 2026 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.