Utilisation du plugin VectorCAN
Le plugin VectorCAN encapsule l'API de bas niveau pour travailler avec les adaptateurs CAN de Vector Informatik.
Ce plugin nécessite les pilotes de périphériques CAN de Vector et le fichier vxlapi.dll (vxlapi64.dll pour les versions 64 bits).
Création de périphériques de bus CAN
Tout d'abord, il est nécessaire de vérifier que QCanBus fournit le plugin désiré :
if (QCanBus::instance()->plugins().contains(QStringLiteral("vectorcan"))) { // plugin available }
où vectorcan est le nom du plugin.
Ensuite, une connexion à une interface spécifique peut être établie :
QString errorString ;QCanBusDevice *device = QCanBus::instance()->createDevice( QStringLiteral("vectorcan"), QStringLiteral("can0"), &errorString) ;if (!device) { // La gestion des erreurs se fait ici qDebug << errorString; } else { device->connectDevice() ; }
Où can0 est le nom du canal CAN actif. Le plugin VectorCAN fournit 64 canaux (définis par XL_CONFIG_MAX_CHANNELS dans l'API Vector) de can0 à can63. Certains de ces canaux peuvent être virtuels, et peuvent donc être utilisés sans matériel CAN réel. Pour connaître les canaux virtuels, il est possible d'utiliser le programme "Vector Hardware Config" (vcanconf.exe), qui est inclus dans le paquetage du pilote Vector. La méthode availableDevices() renvoie une liste des périphériques actuellement disponibles.
Le périphérique 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();
VectorCAN prend en charge les configurations suivantes qui peuvent être contrôlées par setConfigurationParameter() :
| Clé du paramètre de configuration | Description |
|---|---|
| QCanBusDevice::BitRateKey | Détermine le débit binaire de la connexion au bus CAN. |
| QCanBusDevice::ReceiveOwnKey | La réception des trames CAN sur le même appareil que celui qui a envoyé la trame CAN est désactivée par défaut. Lorsque cette option est activée, toutes les trames CAN envoyées au bus CAN apparaissent immédiatement dans le tampon de réception. Cela permet de vérifier si l'envoi a réussi. Si cette option est activée, les trames reçues sont marquées par QCanBusFrame::hasLocalEcho(). |
| QCanBusDevice::CanFdKey | Activer l'utilisation de CAN FD sur la connexion du bus CAN. Si cette option est activée, il n'est pas possible de recevoir ses propres trames CAN en cours d'envoi, donc le fait de mettre QCanBusDevice::ReceiveOwnKey à true n'a pas d'effet. Depuis Qt 5.15. |
| QCanBusDevice::DataBitRateKey | Détermine le débit de données de la connexion au bus CAN. Cette fonction n'est disponible que lorsque QCanBusDevice::CanFdKey est réglé sur true. Depuis Qt 5.15. |
VectorCAN supporte les fonctions supplémentaires suivantes :
© 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.