diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-23 13:11:24 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-23 13:11:24 +0200 |
commit | 086489d59576fec04e41de7d583ab23804bacd19 (patch) | |
tree | 6297ca39f78703e92b87ce50ebb43706182fa69c /src/plugins/canbus/peakcan | |
parent | 3f8eb3be91641f9dba597e4421f9bbf50c5c161e (diff) | |
parent | a69c84909c6fdc8cd9f8bafdf4ad4575ec634a4a (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: Iab1b4ac1c44d161a91f7f51cd0da4fc4a674964d
Diffstat (limited to 'src/plugins/canbus/peakcan')
-rw-r--r-- | src/plugins/canbus/peakcan/main.cpp | 2 | ||||
-rw-r--r-- | src/plugins/canbus/peakcan/peakcanbackend.cpp | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/plugins/canbus/peakcan/main.cpp b/src/plugins/canbus/peakcan/main.cpp index 6606cc2..d4886a9 100644 --- a/src/plugins/canbus/peakcan/main.cpp +++ b/src/plugins/canbus/peakcan/main.cpp @@ -55,7 +55,7 @@ public: { QString errorReason; if (!PeakCanBackend::canCreate(&errorReason)) { - qWarning("%s", qPrintable(errorReason)); + qWarning("%s", qUtf8Printable(errorReason)); if (errorMessage) *errorMessage = errorReason; return nullptr; diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp index 7959cc0..68091e1 100644 --- a/src/plugins/canbus/peakcan/peakcanbackend.cpp +++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp @@ -65,7 +65,7 @@ bool PeakCanBackend::canCreate(QString *errorReason) #else static bool symbolsResolved = resolveSymbols(pcanLibrary()); if (!symbolsResolved) { - *errorReason = tr("The PCAN runtime library is not found"); + *errorReason = pcanLibrary()->errorString(); return false; } return true; @@ -398,17 +398,19 @@ void PeakCanBackendPrivate::startRead() const TPCANStatus st = ::CAN_Read(channelIndex, &message, ×tamp); if (st != PCAN_ERROR_OK) { - if (st != PCAN_ERROR_XMTFULL) + if (st != PCAN_ERROR_QRCVEMPTY) q->setError(systemErrorString(st), QCanBusDevice::ReadError); break; } QCanBusFrame frame(message.ID, QByteArray(reinterpret_cast<const char *>(message.DATA), int(message.LEN))); - frame.setTimeStamp(QCanBusFrame::TimeStamp(timestamp.millis / 1000, timestamp.micros)); + const quint64 millis = timestamp.millis + Q_UINT64_C(0xFFFFFFFF) * timestamp.millis_overflow; + const quint64 micros = Q_UINT64_C(1000) * millis + timestamp.micros; + frame.setTimeStamp(QCanBusFrame::TimeStamp::fromMicroSeconds(micros)); frame.setExtendedFrameFormat(message.MSGTYPE & PCAN_MESSAGE_EXTENDED); frame.setFrameType((message.MSGTYPE & PCAN_MESSAGE_RTR) ? QCanBusFrame::RemoteRequestFrame : QCanBusFrame::DataFrame); - newFrames.append(frame); + newFrames.append(std::move(frame)); } q->enqueueReceivedFrames(newFrames); |