summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2021-11-30 19:39:50 +0100
committerAndre Hartmann <aha_1980@gmx.de>2021-12-03 20:14:10 +0100
commit00be76c217fa266ca6070e5975236cb789fe9ec2 (patch)
tree6c09e0671500a461dc0f6775add9cbdae1267316 /src/plugins
parent05e3d790e4d3cb113e57b8fcf553b9fe2840067e (diff)
PeakCAN: Fix CAN 2.0 timestamp calculation
Taken from PCANBasic_enu.chm included in the PCAN-Basic library: | Calculation of total of microseconds : | micros + 1000 * millis + 0x100000000 * 1000 * millis_overflow So our overflow was off by one. Pick-to: 6.2 Fixes: QTBUG-98800 Change-Id: I6569c7efae22be3e81d54df7e1fce1f68faf0970 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp
index 9bdb9ed..40e23da 100644
--- a/src/plugins/canbus/peakcan/peakcanbackend.cpp
+++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp
@@ -771,7 +771,7 @@ void PeakCanBackendPrivate::startRead()
const int size = static_cast<int>(message.LEN);
QCanBusFrame frame(TPCANLongToFrameID(message.ID),
QByteArray(reinterpret_cast<const char *>(message.DATA), size));
- const quint64 millis = timestamp.millis + Q_UINT64_C(0xFFFFFFFF) * timestamp.millis_overflow;
+ const quint64 millis = timestamp.millis + Q_UINT64_C(0x100000000) * timestamp.millis_overflow;
const quint64 micros = Q_UINT64_C(1000) * millis + timestamp.micros;
frame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(static_cast<qint64>(micros)));
frame.setExtendedFrameFormat(message.MSGTYPE & PCAN_MESSAGE_EXTENDED);