【问题标题】:Receiving Can BUS frame Qt and PeakCan USB adapter接收 Can BUS 帧 Qt 和 PeakCan USB 适配器
【发布时间】:2020-03-23 20:56:38
【问题描述】:

我想使用 Peak System 的 PeakCan USB 适配器从 Qt 接收 Can Bus 帧。目前我可以在总线上写并且效果很好,我使用 PCAN View 进行检查,但我的问题出在阅读过程中。

当我使用 PCAN View 传输数据时,虽然我进行了连接,但我的读取槽没有出现。

这是我的类构造函数,成员 m_device 是 QCanBusDevice 类型:

m_device = QCanBus::instance()->createDevice("peakcan", "usb0");
m_device->connectDevice()
connect(m_device, &QCanBusDevice::framesReceived, this, &BusCan::onFramesReceived);

现在我的插槽用于读取 Can Bus 帧:

void BusCan::onFramesReceived() {
    qDebug() << "[Frame received] !";
}

任何帮助表示赞赏!

【问题讨论】:

    标签: can-bus


    【解决方案1】:

    您的代码适用于我的 pcan-dongle。除了类名等之外,我没有更改您的任何调用。

    为了让信号发出,你必须确保

    • 您正在运行QCoreApplicationQApplication
    • 您的类BusCan 必须继承QObject 并包含Q_OBJECT 宏。

    如果仍然无法正常工作,您可以按照文档中的说明使 QCanBus 显示详细日志记录:

    http://doc.qt.io/qt-5/qtserialbus-index.html

    您也可以在QCanBusDevice 中查看error()errorString()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 2011-07-03
      相关资源
      最近更新 更多