Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.8.0
-
bb77953d24bd633eb87caf80df1fbaa3d8cf6da5
Description
The QCanBusDevice::framesReceived signal is received when transmitting a can signal. This might be a feature but I did not find it documented so in my opinion it is a bug since I cannot distinguish what frames are received (real rx frames or tx receipts)...
Vector documentation provides the following function for controlling what is received and the default values: xlCanSetChannelMode - "This function specifies whether the caller will get a Tx and/or a TxRq receipt for transmitted messages (for CAN channels defined by accessMask). The default is TxRq deactivated and Tx activated."
File: vectorcanbackend.cpp
Function: void VectorCanBackendPrivate::startRead()
Proposed solution: check if this is a tx receipt and in case it is ignore-it:
const s_xl_can_msg &msg = event.tagData.msg;
if (msg.flags & XL_CAN_MSG_FLAG_TX_COMPLETED)
continue;
Attachments
For Gerrit Dashboard: QTBUG-59037 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
186590,3 | VectorCAN: Fix receiving transmit echo for all sent frames | 5.9 | qt/qtserialbus | Status: MERGED | +2 | 0 |
188000,1 | VectorCAN: Fix receiving transmit echo for all sent frames | dev | qt/qtserialbus | Status: ABANDONED | 0 | 0 |