使用 TinyCAN 插件
TinyCAN 插件封装了与 MHS Elektronik CAN 适配器协同工作的高级 API。
注意: TinyCAN 适配器使用虚拟串行端口。要在 Linux 中与 TinyCAN 适配器通信,用户必须具有适当的访问权限。通常,这些权限会授予 "dialout" 组中的所有用户。
创建 CAN 总线设备
首先,需要检查 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() 控制
配置参数键 | 描述 |
---|---|
QCanBusDevice::BitRateKey | 确定 CAN 总线连接的比特率。支持的比特率有:10000、20000、50000、100000、125000、250000、500000、800000、1000000。 |
TinyCAN 支持以下附加功能
© 2024 The Qt Company Ltd. 本文档中的文档贡献归其各自所有者版权所有。此处提供的文档根据 Free Software Foundation 发布的 GNU 通用文档许可证 1.3 版本 的条款许可。Qt 和相关LOGO 是 The Qt Company Ltd. 在芬兰和其他全球国家的商标。所有其他商标均为其各自所有者的财产。