summaryrefslogtreecommitdiffstats
path: root/src/plugins/canbus/peakcan
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-09-23 13:11:24 +0200
committerLiang Qi <liang.qi@qt.io>2016-09-23 13:11:24 +0200
commit086489d59576fec04e41de7d583ab23804bacd19 (patch)
tree6297ca39f78703e92b87ce50ebb43706182fa69c /src/plugins/canbus/peakcan
parent3f8eb3be91641f9dba597e4421f9bbf50c5c161e (diff)
parenta69c84909c6fdc8cd9f8bafdf4ad4575ec634a4a (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Diffstat (limited to 'src/plugins/canbus/peakcan')
-rw-r--r--src/plugins/canbus/peakcan/main.cpp2
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp10
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, &timestamp);
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);