can-bus - 接收 Can BUS 帧 Qt 和 PeakCan USB 适配器
问题描述
我想使用 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] !";
}
任何帮助表示赞赏!
解决方案
您的代码适用于我的 pcan-dongle。除了类名等之外,我没有更改您的任何电话。
为了发出信号,您必须确保
- 你正在运行一个
QCoreApplication
或QApplication
- 您的类
BusCan
必须继承QObject
并包含Q_OBJECT
-macro。
如果它仍然不起作用,您可以QCanBus
按照文档中的说明进行显示详细日志记录:
http://doc.qt.io/qt-5/qtserialbus-index.html
您还可以检查error()
并errorString()
从您的QCanBusDevice
推荐阅读
- google-earth-engine - Google-Earth-Engine 中的 Landsat 8 Collection 1 Tier 1 8-Day NDVI Composite 是否过滤到云中?
- python - 是否有用于从较大内容中提取文本的 NLP 框架
- active-directory - userPrincipalName 被覆盖
- javascript - 在 Discord 上戳机器人
- c# - 从一个表中获取重复项以获取另一个表中的记录
- javascript - 如果 JavaScript 中已经存在对象参数值,则从数组中删除对象
- python - Discord.py 如何让我的机器人在重复用户参数时不 ping 所有人
- python - 尝试部署我的 django 应用程序时 git push heroku master 命令失败
- css - React中轮播中图像的平滑过渡
- html - 如何在 li 和容器 div 的边框之间添加边距?