Merge branch 'master' into fix_remote_frames
This commit is contained in:
@@ -191,14 +191,46 @@ void SerialBusConnection::framesReceived()
|
|||||||
if(frame_p) {
|
if(frame_p) {
|
||||||
frame_p->len = static_cast<uint32_t>(recFrame.payload().length());
|
frame_p->len = static_cast<uint32_t>(recFrame.payload().length());
|
||||||
frame_p->bus = 0;
|
frame_p->bus = 0;
|
||||||
if (recFrame.frameType() == QCanBusFrame::FrameType::RemoteRequestFrame) {
|
|
||||||
frame_p->remote = true;
|
if (recFrame.frameType() == QCanBusFrame::ErrorFrame) {
|
||||||
} else {
|
// Constants defined in include/uapi/linux/can/error.h
|
||||||
frame_p->remote = false;
|
switch (recFrame.error()) {
|
||||||
memcpy(frame_p->data, recFrame.payload().data(), frame_p->len);
|
case QCanBusFrame::TransmissionTimeoutError:
|
||||||
|
frame_p->ID = 0x20000001;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::LostArbitrationError:
|
||||||
|
frame_p->ID = 0x20000002;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::ControllerError:
|
||||||
|
frame_p->ID = 0x20000004;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::ProtocolViolationError:
|
||||||
|
frame_p->ID = 0x20000008;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::TransceiverError:
|
||||||
|
frame_p->ID = 0x20000010;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::MissingAcknowledgmentError:
|
||||||
|
frame_p->ID = 0x20000020;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::BusOffError:
|
||||||
|
frame_p->ID = 0x20000040;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::BusError:
|
||||||
|
frame_p->ID = 0x20000080;
|
||||||
|
break;
|
||||||
|
case QCanBusFrame::ControllerRestartError:
|
||||||
|
frame_p->ID = 0x20000100;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
frame_p->extended = true;
|
||||||
|
} else {
|
||||||
frame_p->extended = recFrame.hasExtendedFrameFormat();
|
frame_p->extended = recFrame.hasExtendedFrameFormat();
|
||||||
frame_p->ID = recFrame.frameId();
|
frame_p->ID = recFrame.frameId();
|
||||||
|
}
|
||||||
|
|
||||||
frame_p->isReceived = true;
|
frame_p->isReceived = true;
|
||||||
if (useSystemTime) {
|
if (useSystemTime) {
|
||||||
frame_p->timestamp = QDateTime::currentMSecsSinceEpoch() * 1000ul;
|
frame_p->timestamp = QDateTime::currentMSecsSinceEpoch() * 1000ul;
|
||||||
|
|||||||
Reference in New Issue
Block a user