Auf dieser Seite

QCanBus Class

Die Klasse „QCanBus“ übernimmt die Registrierung und Erstellung von Bus-Plugins. Mehr...

Header: #include <QCanBus>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
Erbt von: QObject

Öffentliche Funktionen

(since 6.8) QList<QCanBusDeviceInfo> availableDevices(QString *errorMessage = nullptr) const
QList<QCanBusDeviceInfo> availableDevices(const QString &plugin, QString *errorMessage = nullptr) const
QCanBusDevice *createDevice(const QString &plugin, const QString &interfaceName, QString *errorMessage = nullptr) const
QStringList plugins() const

Statische öffentliche Mitglieder

QCanBus *instance()

Ausführliche Beschreibung

QCanBus lädt Qt-CAN-Bus-Plugins zur Laufzeit. Die Eigentumsrechte an den seriellen Bus-Plugins werden auf den Loader übertragen.

Dokumentation der Mitgliedsfunktionen

[since 6.8] QList<QCanBusDeviceInfo> QCanBus::availableDevices(QString *errorMessage = nullptr) const

Gibt die verfügbaren Geräte für alle Plugins zurück, d. h. alle verfügbaren CAN-Schnittstellen.

Im Fehlerfall gibt der optionale Parameter „ errorMessage “ eine textuelle Fehlerbeschreibung zurück.

Hinweis: Einige Plugins unterstützen diese Funktion möglicherweise nicht oder nur teilweise.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch createDevice().

QList<QCanBusDeviceInfo> QCanBus::availableDevices(const QString &plugin, QString *errorMessage = nullptr) const

Gibt die verfügbaren Schnittstellen für „ plugin “ zurück. Im Fehlerfall gibt der optionale Parameter „ errorMessage “ eine textuelle Fehlerbeschreibung zurück.

Hinweis: Einige Plugins unterstützen diese Funktion möglicherweise nicht oder nur teilweise.

Beispielsweise gibt der folgende Aufruf eine Liste aller verfügbaren SocketCAN-Schnittstellen zurück (die für ` createDevice()` verwendet werden können):

QString errorString;
const QList<QCanBusDeviceInfo> devices = QCanBus::instance()->availableDevices(
    QStringLiteral("socketcan"), &errorString);
if (!errorString.isEmpty())
    qDebug() << errorString;

Siehe auch createDevice().

QCanBusDevice *QCanBus::createDevice(const QString &plugin, const QString &interfaceName, QString *errorMessage = nullptr) const

Erstellt ein CAN-Bus-Gerät. ` plugin ` ist der Name des Plugins, wie er von der Methode ` plugins()` zurückgegeben wird. ` interfaceName ` ist der Name der CAN-Bus-Schnittstelle. Im Falle eines Fehlers gibt der optionale Parameter ` errorMessage ` eine textuelle Fehlerbeschreibung zurück.

Die Eigentumsrechte am zurückgegebenen Plugin werden auf den Aufrufer übertragen. Gibt „ nullptr “ zurück, wenn kein passendes Gerät gefunden werden kann.

Beispielsweise würde der folgende Aufruf eine Verbindung zur SocketCAN-Schnittstelle „vcan0“ herstellen:

QString errorString;
QCanBusDevice*device = QCanBus::instance()->createDevice(
    QStringLiteral("socketcan"), QStringLiteral("vcan0"), &errorString);
if (!device)
    qDebug() << errorString;
sonst
    device->connectDevice();

Hinweis: Die Funktion „ interfaceName “ ist pluginabhängig. Weitere Informationen finden Sie in der entsprechenden Plugin-Dokumentation: CAN-Bus-Plugins. Um eine Liste der verfügbaren Schnittstellen zu erhalten, kann die Funktion „ availableDevices()“ verwendet werden.

Siehe auch ` availableDevices()`.

[static] QCanBus *QCanBus::instance()

Gibt einen Zeiger auf die Klasse „ QCanBus “ zurück. Das Objekt wird bei Bedarf geladen. „ QCanBus “ nutzt das Singleton-Entwurfsmuster.

QStringList QCanBus::plugins() const

Gibt eine Liste mit den Bezeichnern aller geladenen Plugins zurück.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.