QT CAN BUS, SocketCAN не может читать кадры CAN

У меня проблемы с чтением фреймов CAN с использованием метода readFrame () в QT.

Мой код для инициализации:

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

CANSend::CANSend(QString interface){

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

}

код для отправки данных — все работает правильно

void CANSend::send_pos(uint16_t pos)
{
QCanBusFrame frame;
frame.setFrameId(1024);
QByteArray payload;
payload[0]=0;
payload[1]=pos>>8;
payload[2]=pos;

frame.setPayload(payload);
CANdevice->writeFrame(frame);
}

код для чтения данных

int CANSend::check_messages(){

const QCanBusFrame frame = CANdevice->readFrame();

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

const qint32 id = frame.frameId();

return id;
}

во время отладки я всегда получаю
frame = @ 0x7fffffffdf10,
dataLength = 0,
id = 0,

Поэтому, хотя я могу ясно видеть входящие пакеты с помощью команды Candump, а также в примере с QT CANBUS, я ничего не получаю.

Не могли бы вы мне помочь? Благодарю.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]