PeakCAN插件封装了低级API,以便与PEAK-System CAN适配器一起工作。
该插件需要PCAN设备驱动程序和PCAN- basic库版本4.0.0或更高的Windows (pcanbasic.dll)和Linux (libpcanbasic.so)。在macOS上,该插件需要来自UV软件的PCBUSB库。
Creating CAN Bus Devices
首先,有必要检查QCanBus是否提供所需的插件:
if (QCanBus::instance()->plugins().contains(QStringLiteral("peakcan"))) {
// plugin available
}
其中peakcan是插件名。
接下来,可以建立到特定接口的连接:
QString errorString;
QCanBusDevice *device = QCanBus::instance()->createDevice(
QStringLiteral("peakcan"), QStringLiteral("usb0"), &errorString);
if (!device) {
// Error handling goes here
qDebug << errorString;
} else {
device->connectDevice();
}
其中usb0是活动CAN接口名称。PeakCAN插件支持16个usb0 ~ usb15的USB接口和16个pci0 ~ pci15的PCI接口。availableDevices()方法返回当前可用设备的列表。
注意:这个插件目前只支持USB和PCI适配器。
注意:在macOS上,这个插件目前只支持USB适配器。
设备现在可以读写CAN帧:
QCanBusFrame frame;
frame.setFrameId(8);
QByteArray payload("A36E");
frame.setPayload(payload);
device->writeFrame(frame);
读取可以使用readFrame()方法完成。当至少有一个新的帧可供读取时,就会发出framesReceived()信号:
QCanBusFrame frame = device->readFrame();
PeakCAN支持以下配置,可以通过setConfigurationParameter()来控制:
Configuration parameter key | Description |
---|---|
QCanBusDevice::CanFdKey | 这个配置选项决定是否可以发送或接收CAN FD帧。默认情况下,该选项是禁用的。启用此选项需要CAN FD兼容的硬件。 |
QCanBusDevice::BitRateKey | 确定CAN总线连接的比特率。支持的比特率如下:5000、10000、20000、33000、47000、50000、83000、95000、100000、125000、250000、500000、800000、1000000。如果QCanBusDevice::CanFdKey选项开启,比特率限制为125000、250000、500000或1000000。注意,此配置参数只能在未连接QCanBusDevice时进行调整。 |
QCanBusDevice::DataBitRateKey | 确定CAN FD总线连接的数据比特率。必须启用QCanBusDevice::CanFdKey选项才能设置此选项。数据比特率为2000000、4000000、800000、10000000。注意,此配置参数只能在未连接QCanBusDevice时进行调整。 |
PeakCAN支持以下附加功能:
QCanBusDevice::resetController()
QCanBusDevice::busStatus()