Utilisation du plugin PeakCAN
Le plugin PeakCAN encapsule l'API de bas niveau pour 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). Sur macOS, le plugin nécessite la bibliothèque PCBUSB d'UV Software, version 0.9 ou supérieure.
Note : Les versions 5.14 à 6.4 de Qt ne sont compatibles qu'avec la version 0.8.1 de la bibliothèque PCBUSB, mais les versions 6.5 et supérieures de Qt requièrent une version 0.9 ou supérieure de PCBUSB.
Note : QCanBusDeviceInfo::alias() n'est supporté que sous Windows et avec PCAN-Basic 4.4.0 ou plus.
Création de périphériques de bus CAN
Tout d'abord, il est nécessaire de vérifier que QCanBus fournit 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 se fait ici qDebug << errorString; } else { device->connectDevice() ; }
Où usb0 est le nom de l'interface CAN active. Le plugin PeakCAN supporte 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.
Note : Seuls les adaptateurs USB et PCI sont actuellement supportés par ce plugin.
Note : Sur macOS, seuls les adaptateurs USB sont actuellement supportés par ce plugin.
L'appareil est maintenant ouvert à 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 par setConfigurationParameter() :
| Clé des paramètres de configuration | Description de la configuration |
|---|---|
| QCanBusDevice::CanFdKey | Cette option de configuration détermine si des 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 suivants sont pris en charge : 5000, 10000, 20000, 33000, 47000, 50000, 83000, 95000, 100000, 125000, 250000, 500000, 800000, 1000000. Si l'option QCanBusDevice::CanFdKey est activée, les débits binaires sont limités à 125000, 250000, 500000 ou 1000000. Notez que ce paramètre de configuration ne peut être ajusté que lorsque le QCanBusDevice n'est pas connecté. |
| QCanBusDevice::DataBitRateKey | Détermine le débit de données 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 de données possibles sont 2000000, 4000000, 8000000 ou 10000000. Notez que ce paramètre de configuration ne peut être ajusté que lorsque le QCanBusDevice 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 réglé sur une valeur définie par l'utilisateur entre 0..255 resp. 0..4294967295 (en fonction de l'appareil) avec PCAN-View. La valeur par défaut est 255 resp. 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.