使用 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. 在芬兰和其他全球国家的商标。所有其他商标均为其各自所有者的财产。