Uso del plugin TinyCAN
El plugin TinyCAN encapsula la API de bajo nivel para trabajar con los adaptadores CAN de MHS Elektronik.
Nota: Los adaptadores TinyCAN utilizan puertos serie virtuales. Para comunicarse con los adaptadores TinyCAN en Linux, el usuario debe tener los derechos de acceso apropiados. Normalmente, estos derechos se otorgan a todos los usuarios del grupo "dialout".
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("tinycan"))) { // plugin available }
Donde tinycan es el nombre del plugin.
A continuación, se puede establecer una conexión con una interfaz específica:
QCanBusDevice *device = QCanBus::instance()->createDevice( QStringLiteral("tinycan"), QStringLiteral("can0.0")); device->connectDevice();
Donde can0.0 es el nombre de la interfaz CAN activa. TinyCAN actualmente sólo proporciona la interfaz can0 .0, que se asigna a INDEX_CAN_KANAL_A en el plugin TinyCAN.
Nota: La función availableDevices() actualmente siempre devuelve un dispositivo "can0.0" ya que no hay forma de detectar los adaptadores CAN disponibles por ahora.
Nota: Actualmente sólo los adaptadores USB son soportados por este plugin.
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 se puede hacer usando 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();
TinyCAN soporta las siguientes configuraciones que pueden ser controladas 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, 1000000. |
TinyCAN 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.