diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2021-11-30 19:39:50 +0100 |
---|---|---|
committer | Andre Hartmann <aha_1980@gmx.de> | 2021-12-03 20:14:10 +0100 |
commit | 00be76c217fa266ca6070e5975236cb789fe9ec2 (patch) | |
tree | 6c09e0671500a461dc0f6775add9cbdae1267316 /src/plugins | |
parent | 05e3d790e4d3cb113e57b8fcf553b9fe2840067e (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.cpp | 2 |
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); |