summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2021-07-23 09:03:55 +0200
committerAndre Hartmann <aha_1980@gmx.de>2021-07-23 13:23:23 +0200
commit3b2ce7c739ca2bb5b47d26fc1b0ee4294f49f0a4 (patch)
tree0a15ddffbbcfdddd84d1ed02d13c2c0ea0264d72
parent12efd9d9199caddda31aefad899bbdc7cfec81d2 (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.cpp3
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp6
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp3
-rw-r--r--src/plugins/canbus/systeccan/systeccanbackend.cpp3
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.cpp3
-rw-r--r--src/plugins/canbus/vectorcan/vectorcanbackend.cpp3
-rw-r--r--src/plugins/canbus/virtualcan/virtualcanbackend.cpp1
-rw-r--r--src/serialbus/qcanbusdevice.cpp27
-rw-r--r--src/serialbus/qcanbusdevice.h13
-rw-r--r--src/serialbus/qcanbusdeviceinfo.cpp15
-rw-r--r--src/serialbus/qcanbusdeviceinfo.h1
-rw-r--r--src/serialbus/qcanbusdeviceinfo_p.h1
-rw-r--r--tests/auto/plugins/genericcanbus/dummybackend.cpp2
-rw-r--r--tests/auto/qcanbus/tst_qcanbus.cpp1
-rw-r--r--tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp2
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);