summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/canbus/peakcan/main.cpp2
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp8
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp3
-rw-r--r--src/plugins/canbus/tinycan/main.cpp2
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.cpp2
5 files changed, 9 insertions, 8 deletions
diff --git a/src/plugins/canbus/peakcan/main.cpp b/src/plugins/canbus/peakcan/main.cpp
index 94213f1..f3977ab 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));
return nullptr;
}
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp
index 920b2c0..3f5d2c0 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;
@@ -437,13 +437,15 @@ 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 % 1000) + timestamp.micros;
+ frame.setTimeStamp(QCanBusFrame::TimeStamp(millis / 1000, micros));
frame.setExtendedFrameFormat(message.MSGTYPE & PCAN_MESSAGE_EXTENDED);
frame.setFrameType((message.MSGTYPE & PCAN_MESSAGE_RTR) ? QCanBusFrame::RemoteRequestFrame : QCanBusFrame::DataFrame);
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp
index 87c466e..60f36f9 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.cpp
+++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp
@@ -35,7 +35,6 @@
****************************************************************************/
#include "socketcanbackend.h"
-#include <QtSerialBus/qcanbusdevice.h>
#include <QtCore/qdebug.h>
#include <QtCore/qdatastream.h>
@@ -266,7 +265,7 @@ bool SocketCanBackend::connectSocket()
return false;
}
- strcpy(interface.ifr_name, canSocketName.toLatin1().data());
+ qstrncpy(interface.ifr_name, canSocketName.toLatin1().constData(), sizeof(interface.ifr_name));
if (ioctl(canSocket, SIOCGIFINDEX, &interface) < 0) {
setError(qt_error_string(errno),
QCanBusDevice::CanBusError::ConnectionError);
diff --git a/src/plugins/canbus/tinycan/main.cpp b/src/plugins/canbus/tinycan/main.cpp
index d020425..8dcfe5c 100644
--- a/src/plugins/canbus/tinycan/main.cpp
+++ b/src/plugins/canbus/tinycan/main.cpp
@@ -55,7 +55,7 @@ public:
{
QString errorReason;
if (!TinyCanBackend::canCreate(&errorReason)) {
- qWarning("%s", qPrintable(errorReason));
+ qWarning("%s", qUtf8Printable(errorReason));
return nullptr;
}
diff --git a/src/plugins/canbus/tinycan/tinycanbackend.cpp b/src/plugins/canbus/tinycan/tinycanbackend.cpp
index f1d7c5c..2cee2d0 100644
--- a/src/plugins/canbus/tinycan/tinycanbackend.cpp
+++ b/src/plugins/canbus/tinycan/tinycanbackend.cpp
@@ -61,7 +61,7 @@ bool TinyCanBackend::canCreate(QString *errorReason)
#else
static bool symbolsResolved = resolveSymbols(mhstcanLibrary());
if (!symbolsResolved) {
- *errorReason = tr("The MHSTCAN runtime library is not found");
+ *errorReason = mhstcanLibrary()->errorString();
return false;
}
return true;