summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2016-07-31 20:43:13 +0200
committerAndré Hartmann <aha_1980@gmx.de>2017-01-10 15:18:02 +0000
commit55d405697c79c4ca23535140e60915e89b4054e3 (patch)
tree8144ae742df62f6d362a71d160a2e3e93484fd96 /tests
parent66fd2b9655d5f34f880b8daf8b2f422a27789517 (diff)
CAN: Add QCanBusDeviceInfo
Returns: * a list of available devices for the chosen plugin * if the device is virtual * if the device is CAN FD capable Use this list in the CAN Example for interface selection. If information about virtual channels or CAN FD capabability is not available, false is returned. For SocketCAN, PeakCAN, VectorCAN and SystecCAN, the implementation is completed. TinyCAN only return the list of possible interfaces for now. This is can be changed later, but needs quite some refactoring of the TinyCAN plugin. [ChangeLog][QtCanBus] Added the new class QCanBusDeviceInfo for enumeration of available CAN interfaces and more information about them. Task-number: QTBUG-54298 Change-Id: I851bcc3b9ee41aaaf1164c6b4a5aaf6503cd8746 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/plugins/genericcanbus/main.cpp12
-rw-r--r--tests/auto/qcanbus/tst_qcanbus.cpp10
2 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/plugins/genericcanbus/main.cpp b/tests/auto/plugins/genericcanbus/main.cpp
index eb07dfa..46b21ac 100644
--- a/tests/auto/plugins/genericcanbus/main.cpp
+++ b/tests/auto/plugins/genericcanbus/main.cpp
@@ -38,6 +38,7 @@
#include <QtSerialBus/qcanbus.h>
#include <QtSerialBus/qcanbusfactory.h>
+#include "../../../../src/serialbus/qcanbusdeviceinfo_p.h"
#include <QtCore/qfile.h>
@@ -50,6 +51,17 @@ class GenericBusPlugin : public QObject, public QCanBusFactory
Q_INTERFACES(QCanBusFactory)
public:
+ QList<QCanBusDeviceInfo> availableDevices(QString *errorMessage) const override
+ {
+ Q_UNUSED(errorMessage);
+
+ QCanBusDeviceInfoPrivate info;
+ info.name = QStringLiteral("can0");
+ info.hasFlexibleDataRate = true;
+ info.isVirtual = true;
+ return { QCanBusDeviceInfo(info) };
+ }
+
QCanBusDevice *createDevice(const QString &interfaceName, QString *errorMessage) const override
{
if (interfaceName == QStringLiteral("invalid")) {
diff --git a/tests/auto/qcanbus/tst_qcanbus.cpp b/tests/auto/qcanbus/tst_qcanbus.cpp
index 63f98cc..fbab78a 100644
--- a/tests/auto/qcanbus/tst_qcanbus.cpp
+++ b/tests/auto/qcanbus/tst_qcanbus.cpp
@@ -48,6 +48,7 @@ public:
private slots:
void initTestCase();
void plugins();
+ void interfaces();
void createDevice();
private:
@@ -83,6 +84,15 @@ void tst_QCanBus::plugins()
}
+void tst_QCanBus::interfaces()
+{
+ const QList<QCanBusDeviceInfo> pluginList = bus->availableDevices("generic");
+ QCOMPARE(1, pluginList.size());
+ QCOMPARE(QString("can0"), pluginList.at(0).name());
+ QVERIFY(pluginList.at(0).isVirtual());
+ QVERIFY(pluginList.at(0).hasFlexibleDataRate());
+}
+
void tst_QCanBus::createDevice()
{
QString error, error2;