diff options
author | Liang Qi <liang.qi@qt.io> | 2017-06-07 12:07:17 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-06-07 13:28:08 +0200 |
commit | e257664ae65ce5c51c7edac0a1a9ffaba4baea70 (patch) | |
tree | e215b858aad2f285fdee4d4aeb4498682573119e /src | |
parent | 6ba3a215494a829e73e62f5bd73f5b769874267d (diff) | |
parent | 8cec9f474af2cf654828b5d47b166da7d3c36574 (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.pro | 2 | ||||
-rw-r--r-- | src/plugins/canbus/socketcan/socketcan.pro | 2 | ||||
-rw-r--r-- | src/plugins/canbus/systeccan/systeccan.pro | 2 | ||||
-rw-r--r-- | src/plugins/canbus/tinycan/tinycan.pro | 2 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcan.pro | 2 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcanbackend.cpp | 21 | ||||
-rw-r--r-- | src/serialbus/doc/src/peakcan.qdoc | 7 | ||||
-rw-r--r-- | src/serialbus/doc/src/socketcan.qdoc | 3 | ||||
-rw-r--r-- | src/serialbus/doc/src/systeccan.qdoc | 3 | ||||
-rw-r--r-- | src/serialbus/doc/src/vectorcan.qdoc | 3 | ||||
-rw-r--r-- | src/serialbus/qcanbusdevice.cpp | 10 | ||||
-rw-r--r-- | src/serialbus/qcanbusdeviceinfo.cpp | 30 | ||||
-rw-r--r-- | src/serialbus/qcanbusdeviceinfo.h | 3 | ||||
-rw-r--r-- | src/tools/tools.pro | 2 |
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 |