@aha_1980 hi, aha_1980, the topic you metioned is posted by me , hahaha .
And you can see my latest comment in the topic to know why the queue is empty.
In conclude, when receiving can fd message, Qt use wrong way to parse it .
You can see following code in startRead() in vectorcanbackend.cpp in Qt source file.
Wrong usages:
QCanBusFrame frame(**msg.id** & ~XL_CAN_EXT_MSG_ID,
frame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(event.timeStamp / 1000));
frame.setExtendedFrameFormat(**msg.id** & XL_CAN_RXMSG_FLAG_EDL);
frame.setFrameType((**msg.flags** & XL_CAN_RXMSG_FLAG_RTR)
? QCanBusFrame::RemoteRequestFrame
: (**msg.flags** & XL_CAN_RXMSG_FLAG_EF)
? QCanBusFrame::ErrorFrame
: QCanBusFrame::DataFrame);
Correct usages:
QCanBusFrame frame(**msg.canId** & ~XL_CAN_EXT_MSG_ID,
frame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(event.timeStampSync / 1000));
frame.setExtendedFrameFormat(**msg.canId** & XL_CAN_RXMSG_FLAG_EDL);
frame.setFrameType((**msg.msgFlags** & XL_CAN_RXMSG_FLAG_RTR)
? QCanBusFrame::RemoteRequestFrame
: (**msg.msgFlags** & XL_CAN_RXMSG_FLAG_EF)
? QCanBusFrame::ErrorFrame
: QCanBusFrame::DataFrame);
BRs//Hengtai