Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT CAN总线,SocketCAN无法读取CAN帧_C++_Qt_Can Bus_Socketcan_Qt5.7 - Fatal编程技术网

C++ QT CAN总线,SocketCAN无法读取CAN帧

C++ QT CAN总线,SocketCAN无法读取CAN帧,c++,qt,can-bus,socketcan,qt5.7,C++,Qt,Can Bus,Socketcan,Qt5.7,我在QT中使用readFrame()方法读取CAN帧时遇到问题 我的初始化代码: #include <QCanBusFrame> #include <QCanBus> #include <QCanBusDevice> CANSend::CANSend(QString interface){ CANdevice = QCanBus::instance()->createDevice("socketcan", interface); if (!CANde

我在QT中使用readFrame()方法读取CAN帧时遇到问题

我的初始化代码:

#include <QCanBusFrame>
#include <QCanBus>
#include <QCanBusDevice>

CANSend::CANSend(QString interface){

CANdevice = QCanBus::instance()->createDevice("socketcan", interface);
if (!CANdevice->connectDevice()) {}

 }
读取数据的代码

int CANSend::check_messages(){

 const QCanBusFrame frame = CANdevice->readFrame();

 const qint8 dataLength = frame.payload().size();

 const qint32 id = frame.frameId();

 return id;
}
在调试期间,我总是 帧=@0x7FFFFFDF10, dataLength=0, id=0

所以,尽管我可以通过candump命令和QT-CANBUS示例清楚地看到输入数据包,但我从未收到任何东西


你能帮帮我吗?谢谢。

尝试通过连接插槽来接收帧
QCanBusDevice::framesReceived
int CANSend::check_messages(){

 const QCanBusFrame frame = CANdevice->readFrame();

 const qint8 dataLength = frame.payload().size();

 const qint32 id = frame.frameId();

 return id;
}