Sur cette page

Utilisation du plug-in VectorCAN

Le plug-in VectorCAN encapsule l'API de bas niveau permettant de travailler avec les adaptateurs CAN de Vector Informatik.

Ce plug-in nécessite les pilotes de périphériques CAN de Vector ainsi que le fichier vxlapi.dll (vxlapi64.dll pour les versions 64 bits).

Création de périphériques de bus CAN

Il faut tout d'abord vérifier que QCanBus propose le plugin souhaité :

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 s'effectue 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) allant de can0 à can63. Certains de ces canaux peuvent être virtuels et peuvent donc être utilisés sans matériel CAN physique. Pour identifier les canaux virtuels, il est possible d’utiliser le programme « Vector Hardware Config » (vcanconf.exe), inclus dans le pack de pilotes de Vector. La méthode availableDevices() renvoie une liste des périphériques actuellement disponibles.

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 s’effectuer à 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 via la méthode setConfigurationParameter():

Clé du paramètre de configurationDescription
QCanBusDevice::BitRateKeyDétermine le débit binaire de la connexion au bus CAN.
QCanBusDevice::ReceiveOwnKeyLa réception des trames CAN sur le même appareil que celui qui les a envoyées est désactivée par défaut. Lorsque cette option est activée, toutes les trames CAN envoyées sur le bus CAN apparaissent immédiatement dans le tampon de réception. Cela permet de vérifier si l'envoi a abouti. Si cette option est activée, les trames ainsi reçues sont marquées d'un QCanBusFrame::hasLocalEcho()
QCanBusDevice::CanFdKeyActive l'utilisation de CAN FD sur la connexion au bus CAN. Si cette option est activée, il n'est pas possible de recevoir vos propres trames CAN en cours d'envoi ; le fait de définir « QCanBusDevice::ReceiveOwnKey » sur « true » n'a donc aucun effet. Depuis Qt 5.15.
QCanBusDevice::DataBitRateKeyDétermine le débit binaire de la connexion au bus CAN. Cette option n’est disponible que lorsque « QCanBusDevice::CanFdKey » est défini sur « true ». Depuis Qt 5.15.

VectorCAN prend en charge 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.