summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-06-07 12:07:17 +0200
committerLiang Qi <liang.qi@qt.io>2017-06-07 13:28:08 +0200
commite257664ae65ce5c51c7edac0a1a9ffaba4baea70 (patch)
treee215b858aad2f285fdee4d4aeb4498682573119e /src
parent6ba3a215494a829e73e62f5bd73f5b769874267d (diff)
parent8cec9f474af2cf654828b5d47b166da7d3c36574 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: .qmake.conf Change-Id: Ib417a3ca5b84519b5eeae6a9368dc3041a41b13b
Diffstat (limited to 'src')
-rw-r--r--src/plugins/canbus/peakcan/peakcan.pro2
-rw-r--r--src/plugins/canbus/socketcan/socketcan.pro2
-rw-r--r--src/plugins/canbus/systeccan/systeccan.pro2
-rw-r--r--src/plugins/canbus/tinycan/tinycan.pro2
-rw-r--r--src/plugins/canbus/vectorcan/vectorcan.pro2
-rw-r--r--src/plugins/canbus/vectorcan/vectorcanbackend.cpp21
-rw-r--r--src/serialbus/doc/src/peakcan.qdoc7
-rw-r--r--src/serialbus/doc/src/socketcan.qdoc3
-rw-r--r--src/serialbus/doc/src/systeccan.qdoc3
-rw-r--r--src/serialbus/doc/src/vectorcan.qdoc3
-rw-r--r--src/serialbus/qcanbusdevice.cpp10
-rw-r--r--src/serialbus/qcanbusdeviceinfo.cpp30
-rw-r--r--src/serialbus/qcanbusdeviceinfo.h3
-rw-r--r--src/tools/tools.pro2
14 files changed, 46 insertions, 46 deletions
diff --git a/src/plugins/canbus/peakcan/peakcan.pro b/src/plugins/canbus/peakcan/peakcan.pro
index bcea9ac..9f9a2de 100644
--- a/src/plugins/canbus/peakcan/peakcan.pro
+++ b/src/plugins/canbus/peakcan/peakcan.pro
@@ -1,6 +1,6 @@
TARGET = qtpeakcanbus
-QT = core-private serialbus
+QT = core serialbus
HEADERS += \
peakcanbackend.h \
diff --git a/src/plugins/canbus/socketcan/socketcan.pro b/src/plugins/canbus/socketcan/socketcan.pro
index 6a5504f..a4874b0 100644
--- a/src/plugins/canbus/socketcan/socketcan.pro
+++ b/src/plugins/canbus/socketcan/socketcan.pro
@@ -1,6 +1,6 @@
TARGET = qtsocketcanbus
-QT = core-private serialbus
+QT = core serialbus
HEADERS += \
socketcanbackend.h
diff --git a/src/plugins/canbus/systeccan/systeccan.pro b/src/plugins/canbus/systeccan/systeccan.pro
index 06d5537..f1c2180 100644
--- a/src/plugins/canbus/systeccan/systeccan.pro
+++ b/src/plugins/canbus/systeccan/systeccan.pro
@@ -1,6 +1,6 @@
TARGET = qtsysteccanbus
-QT = core-private serialbus
+QT = core serialbus
HEADERS += \
systeccanbackend.h \
diff --git a/src/plugins/canbus/tinycan/tinycan.pro b/src/plugins/canbus/tinycan/tinycan.pro
index ab6a58b..c0aa948 100644
--- a/src/plugins/canbus/tinycan/tinycan.pro
+++ b/src/plugins/canbus/tinycan/tinycan.pro
@@ -1,6 +1,6 @@
TARGET = qttinycanbus
-QT = core-private serialbus
+QT = core serialbus
HEADERS += \
tinycanbackend.h \
diff --git a/src/plugins/canbus/vectorcan/vectorcan.pro b/src/plugins/canbus/vectorcan/vectorcan.pro
index a43c061..b22492b 100644
--- a/src/plugins/canbus/vectorcan/vectorcan.pro
+++ b/src/plugins/canbus/vectorcan/vectorcan.pro
@@ -1,6 +1,6 @@
TARGET = qtvectorcanbus
-QT = core-private serialbus
+QT = core serialbus
HEADERS += \
vectorcanbackend.h \
diff --git a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp
index 47662a6..6c455da 100644
--- a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp
+++ b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp
@@ -170,8 +170,8 @@ bool VectorCanBackendPrivate::open()
XL_INTERFACE_VERSION, XL_BUS_TYPE_CAN);
if (Q_UNLIKELY(status != XL_SUCCESS || portHandle == XL_INVALID_PORTHANDLE)) {
- q->setError(systemErrorString(status),
- QCanBusDevice::ConnectionError);
+ q->setError(systemErrorString(status), QCanBusDevice::ConnectionError);
+ portHandle = XL_INVALID_PORTHANDLE;
return false;
}
}
@@ -180,8 +180,7 @@ bool VectorCanBackendPrivate::open()
const XLstatus status = ::xlActivateChannel(portHandle, channelMask,
XL_BUS_TYPE_CAN, XL_ACTIVATE_RESET_CLOCK);
if (Q_UNLIKELY(status != XL_SUCCESS)) {
- q->setError(systemErrorString(status),
- QCanBusDevice::CanBusError::ConnectionError);
+ q->setError(systemErrorString(status), QCanBusDevice::CanBusError::ConnectionError);
return false;
}
}
@@ -190,8 +189,7 @@ bool VectorCanBackendPrivate::open()
const int queueLevel = 1;
const XLstatus status = ::xlSetNotification(portHandle, &readHandle, queueLevel);
if (Q_UNLIKELY(status != XL_SUCCESS)) {
- q->setError(systemErrorString(status),
- QCanBusDevice::ConnectionError);
+ q->setError(systemErrorString(status), QCanBusDevice::ConnectionError);
return false;
}
}
@@ -214,19 +212,22 @@ void VectorCanBackendPrivate::close()
delete writeNotifier;
writeNotifier = nullptr;
+ // xlClosePort can crash on systems with vxlapi.dll but no device driver installed.
+ // Therefore avoid calling any close function when the portHandle is invalid anyway.
+ if (portHandle == XL_INVALID_PORTHANDLE)
+ return;
+
{
const XLstatus status = ::xlDeactivateChannel(portHandle, channelMask);
if (Q_UNLIKELY(status != XL_SUCCESS)) {
- q->setError(systemErrorString(status),
- QCanBusDevice::CanBusError::ConfigurationError);
+ q->setError(systemErrorString(status), QCanBusDevice::CanBusError::ConnectionError);
}
}
{
const XLstatus status = ::xlClosePort(portHandle);
if (Q_UNLIKELY(status != XL_SUCCESS)) {
- q->setError(systemErrorString(status),
- QCanBusDevice::ConnectionError);
+ q->setError(systemErrorString(status), QCanBusDevice::ConnectionError);
}
}
diff --git a/src/serialbus/doc/src/peakcan.qdoc b/src/serialbus/doc/src/peakcan.qdoc
index d47d776..490d832 100644
--- a/src/serialbus/doc/src/peakcan.qdoc
+++ b/src/serialbus/doc/src/peakcan.qdoc
@@ -33,6 +33,9 @@
The PeakCAN plugin encapsulates the low-level API to work with the
\l{http://www.peak-system.com/}{PEAK-System} CAN adapters.
+ This plugin requires the PCAN device drivers and the pcanbasic library
+ (pcanbasic.dll under Windows).
+
\section1 Creating CAN Bus Devices
At first it is necessary to check that QCanBus provides the desired plugin:
@@ -54,8 +57,8 @@
\endcode
Where \e usb0 is the active CAN interface name. The PeakCAN plugin supports
- eight USB interfaces from \e usb0 to \e usb7 and eight PCI interfaces from
- \e pci0 to \e pci7.
+ 16 USB interfaces from \e usb0 to \e usb15 and 16 PCI interfaces from
+ \e pci0 to \e pci15.
\note Only the USB and PCI adapters are currently supported by this plugin.
diff --git a/src/serialbus/doc/src/socketcan.qdoc b/src/serialbus/doc/src/socketcan.qdoc
index 74a8dab..12f96fd 100644
--- a/src/serialbus/doc/src/socketcan.qdoc
+++ b/src/serialbus/doc/src/socketcan.qdoc
@@ -34,6 +34,9 @@
This API is a set of open source CAN drivers and a networking stack contributed by
Volkswagen Research to the Linux kernel.
+ This plugin requires a Linux Kernel with SocketCAN support and SocketCAN device
+ drivers for the used CAN hardware.
+
\section1 SocketCAN usage
To list all (including unconfigured) network interfaces, the command
diff --git a/src/serialbus/doc/src/systeccan.qdoc b/src/serialbus/doc/src/systeccan.qdoc
index 08ecfce..dda9dd5 100644
--- a/src/serialbus/doc/src/systeccan.qdoc
+++ b/src/serialbus/doc/src/systeccan.qdoc
@@ -33,6 +33,9 @@
The SystecCAN backend encapsulates the low-level API to work with the
\l{http://www.systec-electronic.com/}{SYS TEC} CAN adapters.
+ This plugin requires the SYS TEC CAN device drivers and the usbcan32.dll
+ (usbcan64.dll for 64 bit builds).
+
\section1 Creating CAN Bus Devices
At first it is necessary to check that QCanBus provides the desired backend:
diff --git a/src/serialbus/doc/src/vectorcan.qdoc b/src/serialbus/doc/src/vectorcan.qdoc
index f95f956..5b95a83 100644
--- a/src/serialbus/doc/src/vectorcan.qdoc
+++ b/src/serialbus/doc/src/vectorcan.qdoc
@@ -33,6 +33,9 @@
The VectorCAN plugin encapsulates the low-level API to work with the
\l{http://www.vector.com/}{Vector Informatik} CAN adapters.
+ This plugin requires the Vector CAN device drivers and the vxlapi.dll
+ (vxlapi64.dll for 64 bit builds).
+
\section1 Creating CAN Bus Devices
At first it is necessary to check that QCanBus provides the desired plugin:
diff --git a/src/serialbus/qcanbusdevice.cpp b/src/serialbus/qcanbusdevice.cpp
index 70778a7..f613f0a 100644
--- a/src/serialbus/qcanbusdevice.cpp
+++ b/src/serialbus/qcanbusdevice.cpp
@@ -717,11 +717,11 @@ void QCanBusDevice::setState(QCanBusDevice::CanBusDeviceState newState)
QCanBusDeviceInfo QCanBusDevice::createDeviceInfo(const QString &name, bool isVirtual,
bool isFlexibleDataRateCapable)
{
- QCanBusDeviceInfoPrivate info;
- info.name = name;
- info.isVirtual = isVirtual;
- info.hasFlexibleDataRate = isFlexibleDataRateCapable;
- return QCanBusDeviceInfo(info);
+ QScopedPointer<QCanBusDeviceInfoPrivate> info(new QCanBusDeviceInfoPrivate);
+ info->name = name;
+ info->isVirtual = isVirtual;
+ info->hasFlexibleDataRate = isFlexibleDataRateCapable;
+ return QCanBusDeviceInfo(*info.take());
}
QT_END_NAMESPACE
diff --git a/src/serialbus/qcanbusdeviceinfo.cpp b/src/serialbus/qcanbusdeviceinfo.cpp
index fac1e9f..30b0e12 100644
--- a/src/serialbus/qcanbusdeviceinfo.cpp
+++ b/src/serialbus/qcanbusdeviceinfo.cpp
@@ -51,36 +51,23 @@ QT_BEGIN_NAMESPACE
*/
/*!
- Constructs an empty QCanBusDeviceInfo.
-*/
-QCanBusDeviceInfo::QCanBusDeviceInfo() :
- d_ptr(new QCanBusDeviceInfoPrivate)
-{
-}
-
-/*!
Constructs a copy of \a other.
*/
-QCanBusDeviceInfo::QCanBusDeviceInfo(const QCanBusDeviceInfo &other) :
- d_ptr(other.d_ptr)
-{
-}
+QCanBusDeviceInfo::QCanBusDeviceInfo(const QCanBusDeviceInfo &) = default;
/*!
Constructs a CAN bus device info from QCanBusDeviceInfoPrivate \a dd.
\internal
*/
QCanBusDeviceInfo::QCanBusDeviceInfo(QCanBusDeviceInfoPrivate &dd) :
- d_ptr(new QCanBusDeviceInfoPrivate(dd))
+ d_ptr(&dd)
{
}
/*!
Destroys the CAN bus device info.
*/
-QCanBusDeviceInfo::~QCanBusDeviceInfo()
-{
-}
+QCanBusDeviceInfo::~QCanBusDeviceInfo() = default;
/*!
\fn void QCanBusDeviceInfo::swap(QCanBusDeviceInfo &other)
@@ -88,16 +75,17 @@ QCanBusDeviceInfo::~QCanBusDeviceInfo()
and never fails.
*/
+/*!
+ \fn QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(QCanBusDeviceInfo &&other)
+
+ Move-assigns other to this QCanBusDeviceInfo instance.
+*/
/*!
Assigns \a other to this CAN bus device info and returns a reference to this
CAN bus device info.
*/
-QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(const QCanBusDeviceInfo &other)
-{
- QCanBusDeviceInfo(other).swap(*this);
- return *this;
-}
+QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(const QCanBusDeviceInfo &) = default;
/*!
Returns the interface name of this CAN bus interface, e.g. can0.
diff --git a/src/serialbus/qcanbusdeviceinfo.h b/src/serialbus/qcanbusdeviceinfo.h
index b21a4b3..68b68a3 100644
--- a/src/serialbus/qcanbusdeviceinfo.h
+++ b/src/serialbus/qcanbusdeviceinfo.h
@@ -44,12 +44,11 @@
QT_BEGIN_NAMESPACE
class QCanBusDeviceInfoPrivate;
-class QCanBusDeviceInfoPrivateDeleter;
class Q_SERIALBUS_EXPORT QCanBusDeviceInfo
{
public:
- QCanBusDeviceInfo();
+ QCanBusDeviceInfo() = delete;
QCanBusDeviceInfo(const QCanBusDeviceInfo &other);
~QCanBusDeviceInfo();
diff --git a/src/tools/tools.pro b/src/tools/tools.pro
index 1e278da..72d34fb 100644
--- a/src/tools/tools.pro
+++ b/src/tools/tools.pro
@@ -1,3 +1,3 @@
TEMPLATE = subdirs
-!android|android_app: SUBDIRS += canbusutil
+qtConfig(commandlineparser):!android|android_app: SUBDIRS += canbusutil