Utilisation du plugin VirtualCAN
Le plugin VirtualCAN permet de tester des applications CAN via une connexion TCP/IP locale sans matériel CAN. Le serveur TCP est créé lorsque le premier client appelle la fonction createDevice(). Le port TCP par défaut est le 35468 ; il est possible de le modifier en fournissant l'URL complète à la fonction createDevice(). Une fois le serveur en cours d'exécution, aucun autre serveur n'est lancé sur le même système.
Par la suite, tous les clients envoient leurs trames CAN au serveur, qui les distribue aux autres clients.
Création de périphériques de bus CAN
Il faut d’abord vérifier que QCanBus propose le plugin souhaité :
if (QCanBus::instance()->plugins().contains(QStringLiteral("virtualcan"))) {
// plugin available
}Où « virtualcan » est le nom du plugin.
Ensuite, une connexion à une interface spécifique peut être établie :
QCanBusDevice *device = QCanBus::instance()->createDevice(
QStringLiteral("virtualcan"), QStringLiteral("can0"));
device->connectDevice();Où « can0 » est le nom du canal CAN actif. Le plugin VirtualCAN fournit dix canaux, de « can0 » à « can9 ». Tous peuvent être utilisés comme canaux CAN 2.0 ou CAN FD. Toutes les applications connectées à l’un de ces canaux reçoivent l’ensemble des messages envoyés sur ce canal.
Pour se connecter à un serveur distant, utilisez l’URL complète suivante comme nom d’interface :
tcp://server:port/canXpar exemple :
tcp://192.168.1.2:35468/can0Le périphérique est désormais prêt 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();VirtualCAN prend en charge les configurations suivantes, qui peuvent être contrôlées via setConfigurationParameter():
| Clé du paramètre de configuration | Description |
|---|---|
| QCanBusDevice::CanFdKey | Détermine si le bus CAN virtuel fonctionne en mode CAN FD ou non. Cette option est désactivée par défaut. |
| QCanBusDevice::ReceiveOwnKey | La réception des trames CAN sur le même périphérique 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 vers 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 par QCanBusFrame::hasLocalEcho() |
© 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.