QCanBusDevice 缓冲区刷新

QCanBusDevice Bufffer Flushing

我正在创建一个工具来使用连接到微控制器的 PCAN Dongle 解析 CAN 消息。我在 Qt 5.10 中使用 QCanBus 库。

  1. 有多个连接的 CAN 总线,我每个都有一个 QThread 来接收和解析 QCanBusDevice::framesReceived 信号上的消息。
  2. 并行使用 PCAN View 我可以看到微控制器报告的 CAN 数据的变化不会立即反映在我的工具中。似乎接收队列仍在清空,即我的工具无法像微控制器发送它们一样快地解析和存储 CAN 消息数据。
  3. 我只需要关心 CAN 上报告的最新值 - 如果我尝试在 qDebug() 上打印消息的有效负载,我可以看到我的工具正在解析旧数据,它似乎仍在清空接收队列。

有什么方法可以在不断开 QCanBusDevice 的情况下刷新接收队列? 如果我断开连接并再次连接,我就能获得在线上的最新数据。

Qt 5.12 版中包含了 clearFrames()。我必须使用我需要的更改从源代码构建 Qt。