diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2021-07-23 09:03:55 +0200 |
---|---|---|
committer | Andre Hartmann <aha_1980@gmx.de> | 2021-07-23 13:23:23 +0200 |
commit | 3b2ce7c739ca2bb5b47d26fc1b0ee4294f49f0a4 (patch) | |
tree | 0a15ddffbbcfdddd84d1ed02d13c2c0ea0264d72 | |
parent | 12efd9d9199caddda31aefad899bbdc7cfec81d2 (diff) |
QCanBusDeviceInfo: Add method to obtain the plugin name
[ChangeLog][QCanBusDeviceInfo] Added the CAN bus
plugin name to QCanBusDeviceInfo.
Custom plugins must be adopted to the changed
QCanBusDevice::createDeviceInfo() method.
Pick-to: 6.2
Change-Id: I44d658aaa6f873eecce447dd9ee4539c9fbe2043
Reviewed-by: André Hartmann <aha_1980@gmx.de>
-rw-r--r-- | src/plugins/canbus/passthrucan/passthrucanbackend.cpp | 3 | ||||
-rw-r--r-- | src/plugins/canbus/peakcan/peakcanbackend.cpp | 6 | ||||
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.cpp | 3 | ||||
-rw-r--r-- | src/plugins/canbus/systeccan/systeccanbackend.cpp | 3 | ||||
-rw-r--r-- | src/plugins/canbus/tinycan/tinycanbackend.cpp | 3 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcanbackend.cpp | 3 | ||||
-rw-r--r-- | src/plugins/canbus/virtualcan/virtualcanbackend.cpp | 1 | ||||
-rw-r--r-- | src/serialbus/qcanbusdevice.cpp | 27 | ||||
-rw-r--r-- | src/serialbus/qcanbusdevice.h | 13 | ||||
-rw-r--r-- | src/serialbus/qcanbusdeviceinfo.cpp | 15 | ||||
-rw-r--r-- | src/serialbus/qcanbusdeviceinfo.h | 1 | ||||
-rw-r--r-- | src/serialbus/qcanbusdeviceinfo_p.h | 1 | ||||
-rw-r--r-- | tests/auto/plugins/genericcanbus/dummybackend.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qcanbus/tst_qcanbus.cpp | 1 | ||||
-rw-r--r-- | tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp | 2 |
15 files changed, 60 insertions, 24 deletions
diff --git a/src/plugins/canbus/passthrucan/passthrucanbackend.cpp b/src/plugins/canbus/passthrucan/passthrucanbackend.cpp index 3d1e817..e9e361f 100644 --- a/src/plugins/canbus/passthrucan/passthrucanbackend.cpp +++ b/src/plugins/canbus/passthrucan/passthrucanbackend.cpp @@ -177,8 +177,7 @@ QList<QCanBusDeviceInfo> PassThruCanBackend::interfaces() const QString name = canAdapterName(entries); if (!name.isEmpty()) - list.append(createDeviceInfo(name, false, false)); - + list.append(createDeviceInfo(QStringLiteral("passthrucan"), name, false, false)); entries.endGroup(); } #endif diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp index b725702..2139110 100644 --- a/src/plugins/canbus/peakcan/peakcanbackend.cpp +++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp @@ -161,7 +161,8 @@ QList<QCanBusDeviceInfo> PeakCanBackend::interfacesByChannelCondition() if (idStat == PCAN_ERROR_OK) alias = QString::number(deviceId); - result.append(createDeviceInfo(QLatin1String(pcanChannels[i].name), + result.append(createDeviceInfo(QStringLiteral("peakcan"), + QLatin1String(pcanChannels[i].name), QString(), QLatin1String(description), alias, channel, false, isFd)); } @@ -208,7 +209,8 @@ QList<QCanBusDeviceInfo> PeakCanBackend::interfacesByAttachedChannels(bool *ok) const int channel = info.controller_number; const bool isCanFd = (info.device_features & FEATURE_FD_CAPABLE); - result.append(createDeviceInfo(name, QString(), description, alias, + result.append(createDeviceInfo(QStringLiteral("peakcan"), name, QString(), + description, alias, channel, false, isCanFd)); } } diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp index 69dce97..752c4aa 100644 --- a/src/plugins/canbus/socketcan/socketcanbackend.cpp +++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp @@ -146,7 +146,8 @@ QList<QCanBusDeviceInfo> SocketCanBackend::interfaces() const QString serial; const QString description = deviceDescription(deviceName); const int channel = deviceChannel(deviceName); - result.append(createDeviceInfo(deviceName, serial, description, + result.append(createDeviceInfo(QStringLiteral("socketcan"), deviceName, + serial, description, QString(), channel, isVirtual(deviceName), isFlexibleDataRateCapable(deviceName))); } diff --git a/src/plugins/canbus/systeccan/systeccanbackend.cpp b/src/plugins/canbus/systeccan/systeccanbackend.cpp index 4daf48d..a95d243 100644 --- a/src/plugins/canbus/systeccan/systeccanbackend.cpp +++ b/src/plugins/canbus/systeccan/systeccanbackend.cpp @@ -69,7 +69,8 @@ QCanBusDeviceInfo SystecCanBackend::createDeviceInfo(const QString &serialNumber int channelNumber) { const QString name = QString::fromLatin1("can%1.%2").arg(deviceNumber).arg(channelNumber); - return QCanBusDevice::createDeviceInfo(name, serialNumber, description, + return QCanBusDevice::createDeviceInfo(QStringLiteral("systeccan"), name, + serialNumber, description, QString(), channelNumber, false, false); } diff --git a/src/plugins/canbus/tinycan/tinycanbackend.cpp b/src/plugins/canbus/tinycan/tinycanbackend.cpp index eed10ae..527cd14 100644 --- a/src/plugins/canbus/tinycan/tinycanbackend.cpp +++ b/src/plugins/canbus/tinycan/tinycanbackend.cpp @@ -74,7 +74,8 @@ bool TinyCanBackend::canCreate(QString *errorReason) QList<QCanBusDeviceInfo> TinyCanBackend::interfaces() { QList<QCanBusDeviceInfo> result; - result.append(createDeviceInfo(QStringLiteral("can0.0"), false, false)); + result.append(createDeviceInfo(QStringLiteral("tinycan"), QStringLiteral("can0.0"), + false, false)); return result; } diff --git a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp index 1300a27..c05b57c 100644 --- a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp +++ b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp @@ -93,7 +93,8 @@ QList<QCanBusDeviceInfo> VectorCanBackend::interfaces() const QString name = QStringLiteral("can") + QString::number(i); const QString serial = QString::number(config.channel[i].serialNumber); const QString description = QLatin1String(config.channel[i].name); - result.append(createDeviceInfo(name, serial, description, QString(), + result.append(createDeviceInfo(QStringLiteral("vectorcan"), name, + serial, description, QString(), channel, isVirtual, isFd)); } diff --git a/src/plugins/canbus/virtualcan/virtualcanbackend.cpp b/src/plugins/canbus/virtualcan/virtualcanbackend.cpp index 5a7403b..4e02c7d 100644 --- a/src/plugins/canbus/virtualcan/virtualcanbackend.cpp +++ b/src/plugins/canbus/virtualcan/virtualcanbackend.cpp @@ -306,6 +306,7 @@ QList<QCanBusDeviceInfo> VirtualCanBackend::interfaces() for (int channel = 0; channel < VirtualChannels; ++channel) { result.append(createDeviceInfo( + QStringLiteral("virtualcan"), QStringLiteral("can%1").arg(channel), QString(), QStringLiteral("Qt Virtual CAN bus"), QString(), channel, true, true)); diff --git a/src/serialbus/qcanbusdevice.cpp b/src/serialbus/qcanbusdevice.cpp index cb55c1a..963b164 100644 --- a/src/serialbus/qcanbusdevice.cpp +++ b/src/serialbus/qcanbusdevice.cpp @@ -946,30 +946,37 @@ void QCanBusDevice::setState(QCanBusDevice::CanBusDeviceState newState) } /*! - * Returns a QCanBusDeviceInfo created from the given parameters \a name, - * \a isVirtual, and \a isFlexibleDataRateCapable. + * \since 6.2 + * Returns a QCanBusDeviceInfo created from the given parameters \a plugin, + * \a name, \a isVirtual, and \a isFlexibleDataRateCapable. * \internal */ -QCanBusDeviceInfo QCanBusDevice::createDeviceInfo(const QString &name, bool isVirtual, +QCanBusDeviceInfo QCanBusDevice::createDeviceInfo(const QString &plugin, const QString &name, + bool isVirtual, bool isFlexibleDataRateCapable) { - return createDeviceInfo(name, QString(), QString(), QString(), + return createDeviceInfo(plugin, name, QString(), QString(), QString(), 0, isVirtual, isFlexibleDataRateCapable); } /*! - \since 6.0 - Returns a QCanBusDeviceInfo created from the given parameters \a name, - \a serialNumber, \a description, \a alias, \a channel, \a isVirtual, + \since 6.2 + Returns a QCanBusDeviceInfo created from the given parameters \a plugin, + \a name, \a serialNumber, \a description, \a alias, \a channel, \a isVirtual, and \a isFlexibleDataRateCapable. \internal */ -QCanBusDeviceInfo QCanBusDevice::createDeviceInfo(const QString &name, const QString &serialNumber, - const QString &description, const QString &alias, +QCanBusDeviceInfo QCanBusDevice::createDeviceInfo(const QString &plugin, + const QString &name, + const QString &serialNumber, + const QString &description, + const QString &alias, int channel, - bool isVirtual, bool isFlexibleDataRateCapable) + bool isVirtual, + bool isFlexibleDataRateCapable) { std::unique_ptr<QCanBusDeviceInfoPrivate> info(new QCanBusDeviceInfoPrivate); + info->plugin = plugin; info->name = name; info->serialNumber = serialNumber; info->description = description; diff --git a/src/serialbus/qcanbusdevice.h b/src/serialbus/qcanbusdevice.h index fed4fdf..8681666 100644 --- a/src/serialbus/qcanbusdevice.h +++ b/src/serialbus/qcanbusdevice.h @@ -181,13 +181,18 @@ protected: virtual bool open() = 0; virtual void close() = 0; - static QCanBusDeviceInfo createDeviceInfo(const QString &name, + static QCanBusDeviceInfo createDeviceInfo(const QString &plugin, + const QString &name, bool isVirtual, bool isFlexibleDataRateCapable); - static QCanBusDeviceInfo createDeviceInfo(const QString &name, const QString &serialNumber, + static QCanBusDeviceInfo createDeviceInfo(const QString &plugin, + const QString &name, + const QString &serialNumber, const QString &description, - const QString &alias, int channel, - bool isVirtual, bool isFlexibleDataRateCapable); + const QString &alias, + int channel, + bool isVirtual, + bool isFlexibleDataRateCapable); }; Q_DECLARE_TYPEINFO(QCanBusDevice::CanBusError, Q_PRIMITIVE_TYPE); diff --git a/src/serialbus/qcanbusdeviceinfo.cpp b/src/serialbus/qcanbusdeviceinfo.cpp index 55d15df..b808009 100644 --- a/src/serialbus/qcanbusdeviceinfo.cpp +++ b/src/serialbus/qcanbusdeviceinfo.cpp @@ -87,8 +87,21 @@ QCanBusDeviceInfo::~QCanBusDeviceInfo() = default; */ QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(const QCanBusDeviceInfo &) = default; + /*! + \since 6.2 + Returns the plugin name of this CAN bus interface, e.g. "peakcan". + + This corresponds to the \c plugin parameter of QCanBus::createDevice(). + */ +QString QCanBusDeviceInfo::plugin() const +{ + return d_ptr->plugin; +} + /*! - Returns the interface name of this CAN bus interface, e.g. can0. + Returns the interface name of this CAN bus interface, e.g. "can0". + + This corresponds to the \c interfaceName parameter of QCanBus::createDevice(). */ QString QCanBusDeviceInfo::name() const { diff --git a/src/serialbus/qcanbusdeviceinfo.h b/src/serialbus/qcanbusdeviceinfo.h index d4e8959..96238e6 100644 --- a/src/serialbus/qcanbusdeviceinfo.h +++ b/src/serialbus/qcanbusdeviceinfo.h @@ -64,6 +64,7 @@ public: return *this; } + QString plugin() const; QString name() const; QString description() const; QString serialNumber() const; diff --git a/src/serialbus/qcanbusdeviceinfo_p.h b/src/serialbus/qcanbusdeviceinfo_p.h index 637343b..4d13cb7 100644 --- a/src/serialbus/qcanbusdeviceinfo_p.h +++ b/src/serialbus/qcanbusdeviceinfo_p.h @@ -61,6 +61,7 @@ public: { } + QString plugin; QString name; QString description; QString serialNumber; diff --git a/tests/auto/plugins/genericcanbus/dummybackend.cpp b/tests/auto/plugins/genericcanbus/dummybackend.cpp index 301e738..32849a8 100644 --- a/tests/auto/plugins/genericcanbus/dummybackend.cpp +++ b/tests/auto/plugins/genericcanbus/dummybackend.cpp @@ -80,7 +80,7 @@ QString DummyBackend::interpretErrorFrame(const QCanBusFrame &/*errorFrame*/) QList<QCanBusDeviceInfo> DummyBackend::interfaces() { - return {createDeviceInfo(QStringLiteral("can0"), true, true)}; + return {createDeviceInfo(QStringLiteral("generic"), QStringLiteral("can0"), true, true)}; } QT_END_NAMESPACE diff --git a/tests/auto/qcanbus/tst_qcanbus.cpp b/tests/auto/qcanbus/tst_qcanbus.cpp index 556addb..3157999 100644 --- a/tests/auto/qcanbus/tst_qcanbus.cpp +++ b/tests/auto/qcanbus/tst_qcanbus.cpp @@ -90,6 +90,7 @@ void tst_QCanBus::interfaces() { const QList<QCanBusDeviceInfo> pluginList = bus->availableDevices("generic"); QCOMPARE(pluginList.size(), 1); + QCOMPARE(pluginList.at(0).plugin(), QStringLiteral("generic")); QCOMPARE(pluginList.at(0).name(), QStringLiteral("can0")); QVERIFY(pluginList.at(0).isVirtual()); QVERIFY(pluginList.at(0).hasFlexibleDataRate()); diff --git a/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp b/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp index 2fe89e2..c2bd397 100644 --- a/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp +++ b/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp @@ -121,6 +121,7 @@ public: QCanBusDeviceInfo deviceInfo() const override { return createDeviceInfo( + u"plugin"_qs, u"name"_qs, u"serial number"_qs, u"description"_qs, @@ -735,6 +736,7 @@ void tst_QCanBusDevice::tst_deviceInfo() QVERIFY(canDevice != nullptr); auto info = canDevice->deviceInfo(); + QCOMPARE(info.plugin(), u"plugin"_qs); QCOMPARE(info.name(), u"name"_qs); QCOMPARE(info.serialNumber(), u"serial number"_qs); QCOMPARE(info.description(), u"description"_qs); |