我希望使用Peak System的PeakCan USB适配器从Qt接收Can Bus帧。目前我可以在公交车上写字并运行良好,我查看了PCAN View,但我的问题在于阅读过程。
当我使用PCAN传输数据时,虽然我进行了连接,但我的阅读槽并没有发生。
这是我的类构造函数,成员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] !";
}
任何帮助表示赞赏!
答案 0 :(得分:0)
您的代码可与我的pcan加密狗配合使用。除了类名等,我没有改变您的任何通话。
为了获得发射的信号,您必须确保
QCoreApplication
或QApplication
BusCan
必须继承QObject
并包含Q_OBJECT
宏。如果仍然无法运行,则可以按照文档中的说明使QCanBus
显示详细的日志记录:
http://doc.qt.io/qt-5/qtserialbus-index.html
您还可以从error()
中查看errorString()
和QCanBusDevice