Uso del plugin SystecCAN
El plugin SystecCAN encapsula la API de bajo nivel para trabajar con los adaptadores SYS TEC CAN.
Este plugin requiere los controladores de dispositivo SYS TEC CAN y el archivo usbcan32.dll (usbcan64.dll para versiones de 64 bits).
Creación de dispositivos de bus CAN
En primer lugar es necesario comprobar que QCanBus proporciona el plugin deseado:
if (QCanBus::instance()->plugins().contains(QStringLiteral("systeccan"))) { // plugin available }
Donde systeccan es el nombre del plugin.
A continuación, se puede establecer una conexión con una interfaz específica:
QString errorString;QCanBusDevice *device = QCanBus::instance()->createDevice( QStringLiteral("systeccan"), QStringLiteral("can0.0"), &errorString);if (!device) { // La gestión de errores va aquí qDebug << errorString; } else { device->connectDevice(); }
Donde, can0.0 es el nombre de la interfaz CAN activa (interfaz 0, canal 0). El plugin SystecCAN soporta 64 interfaces USB (los llamados módulos) desde can0 .0 hasta can63.1. Cada módulo puede tener uno o dos canales, a los que se puede acceder mediante el índice canX.0 o canX.1. El método availableDevices() devuelve una lista de los dispositivos disponibles actualmente.
Nota: SYS TEC también proporciona interfaces CAN de 8 o 16 canales. Estas unidades constan internamente de un concentrador USB y varios módulos de dos canales.
El dispositivo está ahora abierto para escribir y leer tramas CAN:
QCanBusFrame frame; frame.setFrameId(8); QByteArray payload("A36E"); frame.setPayload(payload); device->writeFrame(frame);
La lectura puede realizarse mediante el método readFrame(). La señal framesReceived() se emite cuando al menos una nueva trama está disponible para su lectura:
QCanBusFrame frame = device->readFrame();
SystecCAN admite las siguientes configuraciones que pueden controlarse a través de setConfigurationParameter():
| Clave del parámetro de configuración | Descripción |
|---|---|
| QCanBusDevice::BitRateKey | Determina la velocidad de bits de la conexión de bus CAN. Se admiten las siguientes velocidades de bits: 10000, 20000, 50000, 100000, 125000, 250000, 500000, 800000 y 1000000. Tenga en cuenta que este parámetro de configuración sólo puede ajustarse mientras QCanBusDevice no está conectado. |
| QCanBusDevice::ReceiveOwnKey | La recepción de tramas CAN en el mismo canal que estaba enviando la trama CAN está desactivada por defecto. Si esta opción está habilitada, las tramas así recibidas se marcan con QCanBusFrame::hasLocalEcho() |
SystecCAN admite las siguientes funciones adicionales:
© 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.