Utilisation du plugin PeakCAN
Le plug-in PeakCAN encapsule l'API de bas niveau permettant de travailler avec les adaptateurs CAN du système PEAK.
Ce plugin nécessite les pilotes de périphériques PCAN et la bibliothèque PCAN-Basic version 4.4.0 ou supérieure sous Windows (pcanbasic.dll) ou 4.0.0 sous Linux (libpcanbasic.so). Sous macOS, le plugin nécessite la bibliothèque PCBUSB d'UV Software, version 0.9 ou supérieure.
Remarque : les versions 5.14 à 6.4 de Qt ne sont compatibles qu'avec la version 0.8.1 de la bibliothèque PCBUSB, tandis que les versions 6.5 et supérieures de Qt nécessitent une version 0.9 ou supérieure de PCBUSB.
Remarque : la fonction « QCanBusDeviceInfo::alias » () n’est prise en charge que sous Windows et avec PCAN-Basic 4.4.0 ou une version ultérieure.
Création de périphériques CAN
Il faut tout d’abord vérifier que QCanBus propose le plugin souhaité :
if (QCanBus::instance()->plugins().contains(QStringLiteral("peakcan"))) {
// plugin available
}Où « peakcan » est le nom du plugin.
Ensuite, une connexion à une interface spécifique peut être établie :
QString errorString ;
QCanBusDevice*device = QCanBus::instance()->createDevice(
QStringLiteral("peakcan"), QStringLiteral("usb0"), &errorString);
if (!device) {
// La gestion des erreurs s'effectue ici
qDebug << errorString;
} else {
device->connectDevice();
}Où usb0 est le nom de l'interface CAN active. Le plugin PeakCAN prend en charge 16 interfaces USB, de usb0 à usb15, et 16 interfaces PCI, de pci0 à pci15. La méthode availableDevices() renvoie une liste des périphériques actuellement disponibles.
Remarque : seuls les adaptateurs USB et PCI sont actuellement pris en charge par ce plugin.
Remarque : sous macOS, seuls les adaptateurs USB sont actuellement pris en charge par ce plugin.
Le périphérique est désormais ouvert pour l'écriture et la lecture de trames CAN :
QCanBusFrame frame;
frame.setFrameId(8);
QByteArray payload("A36E");
frame.setPayload(payload);
device->writeFrame(frame);La lecture peut être effectuée à l'aide de la méthode ` readFrame()`. Le signal ` framesReceived()` est émis lorsqu'au moins une nouvelle trame est disponible pour la lecture :
QCanBusFrame frame = device->readFrame();PeakCAN prend en charge les configurations suivantes, qui peuvent être contrôlées via la méthode ` setConfigurationParameter()` :
| Clé de paramètre de configuration | Description |
|---|---|
| QCanBusDevice::CanFdKey | Cette option de configuration détermine si les trames CAN FD peuvent être envoyées ou reçues. Par défaut, cette option est désactivée. Un matériel compatible CAN FD est nécessaire pour activer cette option. |
| QCanBusDevice::BitRateKey | Détermine le débit binaire de la connexion au bus CAN. Les débits binaires suivants sont pris en charge : 5000, 10000, 20000, 33000, 47000, 50000, 83000, 95000, 100000, 125 000, 250 000, 500 000, 800 000, 1 000 000. Si l’option « QCanBusDevice::CanFdKey » est activée, les débits binaires sont limités à 125 000, 250 000, 500 000 ou 1 000 000. Notez que ce paramètre de configuration ne peut être modifié que lorsque l’ QCanBusDevice e n’est pas connecté. |
| QCanBusDevice::DataBitRateKey | Détermine le débit binaire de la connexion au bus CAN FD. L’option « QCanBusDevice::CanFdKey » doit être activée pour permettre le réglage de cette option. Les débits binaires possibles sont 2 000 000, 4 000 000, 8 000 000 ou 10 000 000. Notez que ce paramètre de configuration ne peut être modifié que lorsque l'QCanBusDevice e n'est pas connecté. |
PeakCAN prend en charge les fonctions supplémentaires suivantes :
- QCanBusDevice::resetController()
- QCanBusDevice::busStatus()
- QCanBusDeviceInfo::alias() (Windows et PCAN-Basic >= 4.4.0 uniquement) : Renvoie le PCAN_DEVICE_ID qui peut être défini par l'utilisateur sur une valeur comprise entre 0 et 255 ou entre 0 et 4294967295 (selon le périphérique) à l'aide de PCAN-View. La valeur par défaut est 255 ou 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.