TinyCAN插件封装了低级API,以便与MHS Elektronik CAN适配器一起工作。
注意:TinyCAN适配器使用虚拟串行端口。要与Linux中的TinyCAN适配器通信,用户必须具有适当的访问权限。通常,这些权限授予“dialout”组中的所有用户。
Creating CAN Bus Devices
首先,有必要检查QCanBus是否提供所需的插件:
if (QCanBus::instance()->plugins().contains(QStringLiteral("tinycan"))) {
// plugin available
}
其中tinycan是插件名。
接下来,可以建立到特定接口的连接:
QCanBusDevice *device = QCanBus::instance()->createDevice(
QStringLiteral("tinycan"), QStringLiteral("can0.0"));
device->connectDevice();
其中can0.0为活动CAN接口名称。TinyCAN目前只提供接口can0.0,它映射到TinyCAN插件中的INDEX_CAN_KANAL_A。
注意:函数availableDevices()目前总是返回一个设备“can0.0”,因为目前没有办法检测可用的CAN适配器。
注意:这个插件目前只支持USB适配器。
设备现在可以读写CAN帧:
QCanBusFrame frame;
frame.setFrameId(8);
QByteArray payload("A36E");
frame.setPayload(payload);
device->writeFrame(frame);
读取可以使用readFrame()方法完成。当至少有一个新的帧可供读取时,就会发出framesReceived()信号:
QCanBusFrame frame = device->readFrame();
TinyCAN支持以下配置,可以通过setConfigurationParameter()控制:
Configuration parameter key | Description |
---|---|
QCanBusDevice::BitRateKey | 确定CAN总线连接的比特率。支持的比特率为:10000、20000、50000、100000、125000、250000、500000、800000、1000000。 |
TinyCAN支持以下附加功能:
QCanBusDevice::resetController()