summaryrefslogtreecommitdiffstats
path: root/src/plugins/canbus/socketcan
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/canbus/socketcan')
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp
index f9f28cc..53836b0 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.cpp
+++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp
@@ -449,6 +449,7 @@ bool SocketCanBackend::writeFrame(const QCanBusFrame &newData)
canfd_frame frame;
frame.len = newData.payload().size();
frame.can_id = canId;
+ frame.flags = newData.hasBitrateSwitch() ? CANFD_BRS : 0;
::memcpy(frame.data, newData.payload().constData(), frame.len);
bytesWritten = ::write(canSocket, &frame, sizeof(frame));
@@ -676,6 +677,8 @@ void SocketCanBackend::readSocket()
bufferedFrame.setFrameType(QCanBusFrame::RemoteRequestFrame);
if (frame.can_id & CAN_ERR_FLAG)
bufferedFrame.setFrameType(QCanBusFrame::ErrorFrame);
+ if (frame.flags & CANFD_BRS)
+ bufferedFrame.setBitrateSwitch(true);
bufferedFrame.setFrameId(frame.can_id & CAN_EFF_MASK);