QOpcUaGdsClient Class
Übernimmt die Kommunikation mit dem GDS-Server. Mehr...
| Kopfzeile: | #include <QOpcUaGdsClient> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
| qmake: | QT += opcua |
| Erbt von: | QObject |
Öffentliche Typen
| enum class | Error { NoError, InvalidBackend, InvalidEndpoint, ConnectionError, DirectoryNodeNotFound, …, FailedToGetCertificate } |
| enum class | State { Idle, BackendInstantiated, Connecting, Connected, RegisteringApplication, …, Error } |
Öffentliche Funktionen
| QOpcUaGdsClient(QObject *parent = nullptr) | |
| virtual | ~QOpcUaGdsClient() |
| QString | applicationId() const |
| const QOpcUaApplicationIdentity & | applicationIdentity() const |
| const QOpcUaApplicationRecordDataType & | applicationRecord() const |
| const QString & | backend() const |
| int | certificateCheckInterval() const |
| const QOpcUaX509DistinguishedName & | distinguishedNameCertificateSigningRequestPreset() const |
| const QString & | dnsCertificateSigningRequestPreset() const |
| const QOpcUaEndpointDescription & | endpoint() const |
| QOpcUaGdsClient::Error | error() const |
| const QOpcUaPkiConfiguration & | pkiConfiguration() const |
| void | setApplicationIdentity(const QOpcUaApplicationIdentity &appIdentity) |
| void | setApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord) |
| void | setBackend(const QString &backend) |
| void | setCertificateCheckInterval(int interval) |
| void | setCertificateSigningRequestPresets(const QOpcUaX509DistinguishedName &dn, const QString &dns) |
| void | setEndpoint(const QOpcUaEndpointDescription &endpoint) |
| void | setPkiConfiguration(const QOpcUaPkiConfiguration &pkiConfig) |
| void | setTrustListUpdateInterval(int interval) |
| void | start() |
| QOpcUaGdsClient::State | state() const |
| int | trustListUpdateInterval() const |
| void | unregisterApplication() |
Signale
| void | applicationRegistered() |
| void | authenticationRequired(QOpcUaAuthenticationInformation &authInfo) |
| void | certificateGroupsReceived(QStringList certificateGroups) |
| void | certificateUpdateRequired() |
| void | certificateUpdated() |
| void | errorChanged(QOpcUaGdsClient::Error error) |
| void | stateChanged(QOpcUaGdsClient::State state) |
| void | trustListUpdated() |
| void | unregistered() |
Ausführliche Beschreibung
Diese Klasse ist derzeit als Technology Preview verfügbar. Daher können sich die von der Klasse bereitgestellte API und die Funktionen jederzeit ohne vorherige Ankündigung ändern.
Diese Klasse übernimmt alle Schritte, die für die Kommunikation mit einem GDS-Server erforderlich sind. Anhand der bereitgestellten Informationen über die Anwendung führt sie die Registrierung beim Server durch und verwaltet Schlüssel und Zertifikate.
Es müssen nur wenige Details bekannt sein, um an einem gesicherten Netzwerk teilzunehmen.
Die erstmalige Registrierung erfordert Administratorrechte sowie die Authentifizierung mittels Benutzername und Passwort. Alle weiteren Authentifizierungen erfolgen anwendungsbasiert unter Verwendung des zuvor erhaltenen Zertifikats.
Wenn der gesamte Vorgang erfolgreich verläuft, müssen Sie auf das Signal „ applicationRegistered “ warten.
Die meisten Einrichtungsstrukturen müssen mit denen für die anschließende Verbindung mit „ QOpcUaClient “ übereinstimmen und können gemeinsam genutzt werden.
Einrichten eines GDS-Clients:
QOpcUaGdsClient c;
// Falls Anmeldedaten benötigt werden
QObject::connect(&c, &QOpcUaGdsClient::authenticationRequired, [&](QOpcUaAuthenticationInformation&authInfo) {
authInfo.setUsernameAuthentication("root", "secret");
});
// Auf Erfolg warten
QObject::connect(&c, &QOpcUaGdsClient::applicationRegistered, [&]() {
qDebug() << "Application" << c.applicationId() << "registered";
});
c.setBackend(...);
c.setEndpoint(...);
c.setApplicationIdentity(...);
c.setPkiConfiguration(...);
c.setApplicationRecord(...);
c.setCertificateSigningRequestPresets(...);
c.start();Dokumentation zu Mitgliedstypen
enum class QOpcUaGdsClient::Error
Diese Enumeration dient zur Angabe von Fehlern, die während des Registrierungsvorgangs auftreten können.
| Konstante | Wert | Beschreibung |
|---|---|---|
QOpcUaGdsClient::Error::NoError | 0 | Alles in Ordnung |
QOpcUaGdsClient::Error::InvalidBackend | 1 | Das Backend konnte nicht instanziiert werden. Die angegebene Backend-Zeichenkette stimmt mit keinem Backend überein oder das Laden des Plugins ist fehlgeschlagen. |
QOpcUaGdsClient::Error::InvalidEndpoint | 2 | Der angegebene Endpunkt ist ungültig. |
QOpcUaGdsClient::Error::ConnectionError | 3 | Die Verbindung zum Server-Endpunkt ist fehlgeschlagen. |
QOpcUaGdsClient::Error::DirectoryNodeNotFound | 4 | Der Verzeichnisknoten auf dem Server konnte nicht aufgelöst werden |
QOpcUaGdsClient::Error::FailedToRegisterApplication | 5 | Die Registrierung der Anwendung war nicht erfolgreich. |
QOpcUaGdsClient::Error::FailedToUnregisterApplication | 6 | Die Abmeldung der Anwendung war nicht erfolgreich. |
QOpcUaGdsClient::Error::FailedToGetCertificateStatus | 7 | Der Status des aktuellen Zertifikats konnte nicht abgerufen werden. |
QOpcUaGdsClient::Error::FailedToGetCertificate | 8 | Es konnte kein Zertifikat vom Server abgerufen werden. |
enum class QOpcUaGdsClient::State
Diese Enumeration dient dazu, den aktuellen Status der Registrierung des GDS-Clients anzugeben.
| Konstante | Wert | Beschreibung |
|---|---|---|
QOpcUaGdsClient::State::Idle | 0 | Der Client wurde noch nicht gestartet. |
QOpcUaGdsClient::State::BackendInstantiated | 1 | Das Backend wurde instanziiert |
QOpcUaGdsClient::State::Connecting | 2 | Es wird eine Verbindung zum Server hergestellt |
QOpcUaGdsClient::State::Connected | 3 | Die Verbindung zum Server-Endpunkt wurde erfolgreich hergestellt. |
QOpcUaGdsClient::State::RegisteringApplication | 4 | Die Anwendung wird beim Server registriert. |
QOpcUaGdsClient::State::ApplicationRegistered | 5 | Die Registrierung der Anwendung beim Server war erfolgreich. |
QOpcUaGdsClient::State::Error | 6 | Es ist ein Fehler aufgetreten. Weitere Details finden Sie im Rückgabewert von ` error()` und in der Terminalausgabe. |
Dokumentation der Mitgliedsfunktionen
QOpcUaGdsClient::QOpcUaGdsClient(QObject *parent = nullptr)
Erstellt einen GDS-Client mit „ parent “ als übergeordnetem Objekt.
[virtual noexcept] QOpcUaGdsClient::~QOpcUaGdsClient()
Löst einen GDS-Client auf.
QString QOpcUaGdsClient::applicationId() const
Gibt die vom Server zugewiesene Anwendungs-ID zurück.
Dies ist eine Abkürzung, um die Anwendungs-ID aus den Anwendungsdatensatzdaten abzurufen.
Siehe auch ` applicationRecord()`.
const QOpcUaApplicationIdentity &QOpcUaGdsClient::applicationIdentity() const
Gibt die aktuelle applicationIdentity zurück.
Siehe auch ` setApplicationIdentity()`.
const QOpcUaApplicationRecordDataType &QOpcUaGdsClient::applicationRecord() const
Gibt die vom Client verwendeten Anwendungsdatensatzdaten zurück.
Siehe auch „ setApplicationRecord()“.
[signal] void QOpcUaGdsClient::applicationRegistered()
Dieses Signal wird ausgegeben, wenn eine Anwendung erfolgreich registriert wurde.
[signal] void QOpcUaGdsClient::authenticationRequired(QOpcUaAuthenticationInformation &authInfo)
Dieses Signal wird ausgegeben, wenn der GDS-Client versucht, eine erstmalige Authentifizierung bei einem Server durchzuführen, für die Administratorrechte erforderlich sind.
authInfo Muss mit gültigen Authentifizierungsdaten gefüllt werden. Dieser Slot darf nicht über Thread-Grenzen hinweg verwendet werden.
const QString &QOpcUaGdsClient::backend() const
Gibt die aktuelle Backend-Einstellung zurück.
Wurde das Backend nach dem Start des Clients geändert, wird die geänderte Einstellung zurückgegeben, jedoch nicht die tatsächlich verwendete Instanz.
Siehe auch ` setBackend()`.
int QOpcUaGdsClient::certificateCheckInterval() const
Gibt das Intervall in Millisekunden für die Überprüfung der Gültigkeit des Client-Zertifikats zurück.
Siehe auch ` setCertificateCheckInterval()`.
[signal] void QOpcUaGdsClient::certificateGroupsReceived(QStringList certificateGroups)
Dieses Signal wird ausgelöst, wenn der GDS-Client eine neue Liste von „ certificateGroups “ für diese Anwendung empfängt.
[signal] void QOpcUaGdsClient::certificateUpdateRequired()
Dieses Signal wird ausgegeben, wenn der GDS-Client feststellt, dass eine Aktualisierung des derzeit verwendeten Zertifikats erforderlich ist.
Dies kann dadurch verursacht werden, dass der Server den Client auffordert, das Zertifikat zu aktualisieren, wenn das Ablaufdatum des Zertifikats erreicht ist oder wenn es sich um ein selbstsigniertes Zertifikat handelt.
Die Zertifikatsaktualisierung erfolgt automatisch. Dieses Signal dient lediglich zu Informationszwecken und weist darauf hin, dass eine Aktualisierung bevorsteht.
[signal] void QOpcUaGdsClient::certificateUpdated()
Dieses Signal wird ausgegeben, wenn der GDS-Client ein neues Zertifikat empfangen hat, das auf der Festplatte gespeichert war.
const QOpcUaX509DistinguishedName &QOpcUaGdsClient::distinguishedNameCertificateSigningRequestPreset() const
Gibt den voreingestellten Distinguished Name für Zertifikatssignierungsanfragen zurück.
const QString &QOpcUaGdsClient::dnsCertificateSigningRequestPreset() const
Gibt die DNS-Voreinstellung für Zertifikatssignierungsanfragen zurück.
const QOpcUaEndpointDescription &QOpcUaGdsClient::endpoint() const
Gibt die aktuelle Endpunktkonfiguration zurück.
Wurde der Endpunkt nach dem Start des Clients geändert, wird die geänderte Einstellung zurückgegeben, nicht jedoch der tatsächlich verwendete Endpunkt.
Siehe auch ` setEndpoint()`.
QOpcUaGdsClient::Error QOpcUaGdsClient::error() const
Gibt den aktuellen Fehlerstatus zurück.
[signal] void QOpcUaGdsClient::errorChanged(QOpcUaGdsClient::Error error)
Dieses Signal wird ausgegeben, wenn ein „ error “ aufgetreten ist.
const QOpcUaPkiConfiguration &QOpcUaGdsClient::pkiConfiguration() const
Gibt die aktuelle pkiConfiguration zurück.
Siehe auch „ setPkiConfiguration()“.
void QOpcUaGdsClient::setApplicationIdentity(const QOpcUaApplicationIdentity &appIdentity)
Legt die vom Client zu verwendende Anwendungsidentität „ appIdentity “ fest.
Diese Identität wird zur Registrierung beim GDS-Server verwendet. Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkungen.
Siehe auch applicationIdentity().
void QOpcUaGdsClient::setApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord)
Legt die vom Client zu verwendenden Anwendungsdatensätze „ appRecord “ fest.
Diese Daten werden für die Registrierung beim GDS-Server verwendet. Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden.
Die meisten Daten entsprechen denen der Anwendungsidentität. Nach der Registrierung kann die zugewiesene Anwendungs-ID abgerufen werden.
Siehe auch applicationRecord() und setApplicationIdentity.
void QOpcUaGdsClient::setBackend(const QString &backend)
Legt das Backend fest, das der Client für die Kommunikation mit dem Server unter backend verwenden soll.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkungen.
Siehe auch backend(), QOpcUaProvider::availableBackends() und start().
void QOpcUaGdsClient::setCertificateCheckInterval(int interval)
Legt das Intervall in Millisekunden fest, in dem die Gültigkeit des Client-Zertifikats gegenüber interval überprüft wird.
Siehe auch certificateCheckInterval().
void QOpcUaGdsClient::setCertificateSigningRequestPresets(const QOpcUaX509DistinguishedName &dn, const QString &dns)
Legt die Voreinstellungen für Zertifikatssignierungsanfragen fest: den Distinguished Name „ dn “ und die DNS-Zeichenkette „ dns “.
Beim Erstellen einer Zertifikatssignierungsanforderung werden einige zusätzliche Informationen benötigt, die von der Anwendungsidentität nicht bereitgestellt werden.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden.
Siehe auch setApplicationIdentity().
void QOpcUaGdsClient::setEndpoint(const QOpcUaEndpointDescription &endpoint)
Legt den Endpunkt fest, über den der Client mit dem Server kommunizieren soll: endpoint.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkungen.
Die Kommunikation mit einem GDS-Server ist nur über einen verschlüsselten Endpunkt möglich. Die Verwendung eines unverschlüsselten Endpunkts schlägt fehl.
Siehe auch endpoint().
void QOpcUaGdsClient::setPkiConfiguration(const QOpcUaPkiConfiguration &pkiConfig)
Legt das vom Client zu verwendende PKI-Konfigurations pkiConfig fest.
Alle Zertifikate, Schlüssel und Vertrauenslisten werden von den angegebenen Speicherorten verwendet bzw. dort gespeichert. Um das vom GDS erhaltene Zertifikat zu verwenden, muss dieselbe Konfiguration unter „ QOpcUaClient “ verwendet werden.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkungen.
Siehe auch ` pkiConfiguration()`.
void QOpcUaGdsClient::setTrustListUpdateInterval(int interval)
Legt das Intervall in Millisekunden für die Aktualisierung der Vertrauensliste vom Server auf interval fest.
Siehe auch trustListUpdateInterval().
void QOpcUaGdsClient::start()
Startet den Client-Prozess.
Nachdem alle Informationen eingerichtet wurden, kann der Client gestartet werden.
- setBackend
- setEndpoint
- setApplicationIdentity
- setPkiConfiguration
- setApplicationRecord
- setCertificateSigningRequestPresets
QOpcUaGdsClient::State QOpcUaGdsClient::state() const
Gibt den aktuellen Client-Status zurück.
[signal] void QOpcUaGdsClient::stateChanged(QOpcUaGdsClient::State state)
Dieses Signal wird ausgegeben, wenn sich der interne Zustand des Clients ändert. Die „ state “ gibt den neuen Zustand an.
int QOpcUaGdsClient::trustListUpdateInterval() const
Gibt das Intervall in Millisekunden für die Aktualisierung der Vertrauensliste durch den Server zurück.
Siehe auch ` setTrustListUpdateInterval()`.
[signal] void QOpcUaGdsClient::trustListUpdated()
Dieses Signal wird ausgegeben, wenn der GDS-Client eine neue Vertrauensliste vom Server empfangen und auf der Festplatte gespeichert hat.
void QOpcUaGdsClient::unregisterApplication()
Hebt die Registrierung einer Anwendung auf dem Server auf.
Diese Funktion kann verwendet werden, wenn eine Anwendung dauerhaft aus dem Netzwerk entfernt werden muss. Sie muss beim Neustart oder Herunterfahren nicht aufgerufen werden.
[signal] void QOpcUaGdsClient::unregistered()
Dieses Signal wird ausgesendet, wenn der GDS-Client die Anwendung abgemeldet hat.
© 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.