QOpcUaGdsClient Class
Erledigt 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: | 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() |
Detaillierte Beschreibung
Diese Klasse ist derzeit als Technologievorschau verfügbar. Daher können die API und die von der Klasse bereitgestellten Funktionen jederzeit ohne vorherige Ankündigung geändert werden.
Diese Klasse führt alle Schritte aus, die für die Kommunikation mit einem GDS-Server erforderlich sind. Ausgestattet mit Informationen über die Anwendung übernimmt sie die Registrierung beim Server und die Verwaltung von Schlüsseln/Zertifikaten.
Nur wenige Details müssen bekannt sein, um an einem gesicherten Netzwerk teilnehmen zu können.
Für die erstmalige Registrierung sind administrative Rechte erforderlich, wobei Benutzername und Passwort zur Authentifizierung verwendet werden. Alle weiteren Authentifizierungen sind anwendungsbasiert, wobei das zuerst erhaltene Zertifikat verwendet wird.
In der Erwartung, dass der gesamte Prozess erfolgreich verläuft, müssen Sie auf das Signal applicationRegistered warten.
Die meisten der Setup-Strukturen müssen die gleichen sein wie für die Verbindung mit QOpcUaClient und können gemeinsam genutzt werden.
Einrichten eines GDS-Clients:
QOpcUaGdsClient c;// Für den Fall, dass die Anmeldedaten benötigt werdenQObject::connect(&c, &QOpcUaGdsClient::authenticationRequired, [&](QOpcUaAuthenticationInformation &authInfo) { authInfo.setUsernameAuthentication("root", "secret"); });// Erfolg abwartenQObject::connect(&c, &QOpcUaGdsClient::applicationRegistered, [&]() { qDebug() << "Application" << c.applicationId() << "registered"; }); c.setBackend(...); c.setEndpoint(...); c.setApplicationIdentity(...); c.setPkiConfiguration(...); c.setApplicationRecord(...); c.setCertificateSigningRequestPresets(...); c.start();
Dokumentation der Mitgliedstypen
enum class QOpcUaGdsClient::Error
Diese Aufzählung wird verwendet, um Fehler anzugeben, die während des Registrierungsprozesses auftreten können.
Konstante | Wert | Beschreibung |
---|---|---|
QOpcUaGdsClient::Error::NoError | 0 | Alles ist in Ordnung |
QOpcUaGdsClient::Error::InvalidBackend | 1 | Das Backend konnte nicht instanziiert werden. Der angegebene Backend-String stimmt mit keinem Backend überein oder das Laden des Plugins ist fehlgeschlagen. |
QOpcUaGdsClient::Error::InvalidEndpoint | 2 | Der angegebene Endpunkt ist nicht gü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 Deregistrierung der Anwendung war nicht erfolgreich. |
QOpcUaGdsClient::Error::FailedToGetCertificateStatus | 7 | Der Status des aktuellen Zertifikats konnte nicht abgefragt werden. |
QOpcUaGdsClient::Error::FailedToGetCertificate | 8 | Ein Zertifikat konnte nicht vom Server abgerufen werden. |
enum class QOpcUaGdsClient::State
Dieses Enum wird verwendet, um 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 mit dem Server-Endpunkt war erfolgreich. |
QOpcUaGdsClient::State::RegisteringApplication | 4 | Die Anwendung wird gerade beim Server registriert. |
QOpcUaGdsClient::State::ApplicationRegistered | 5 | Die Registrierung der Anwendung beim Server war erfolgreich. |
QOpcUaGdsClient::State::Error | 6 | Ein Fehler ist aufgetreten. Siehe den Rückgabewert von error() und die Terminalausgabe für weitere Details. |
Dokumentation der Mitgliedsfunktionen
QOpcUaGdsClient::QOpcUaGdsClient(QObject *parent = nullptr)
Konstruiert einen GDS-Client mit parent als übergeordnetem Objekt.
[virtual noexcept]
QOpcUaGdsClient::~QOpcUaGdsClient()
Zerstört einen GDS-Client.
QString QOpcUaGdsClient::applicationId() const
Gibt die vom Server zugewiesene Anwendungs-ID zurück.
Dies ist eine Abkürzung, um die Anwendungs-ID aus den Anwendungsdatensätzen zu erhalten.
Siehe auch applicationRecord().
const QOpcUaApplicationIdentity &QOpcUaGdsClient::applicationIdentity() const
Gibt die aktuelle applicationIdentity zurück.
Siehe auch setApplicationIdentity().
const QOpcUaApplicationRecordDataType &QOpcUaGdsClient::applicationRecord() const
Liefert die Anwendungsdatensätze zurück, die vom Client verwendet werden.
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, sich zum ersten Mal bei einem Server zu authentifizieren, der administrative Rechte erfordert.
authInfo muss mit gültigen Authentifizierungsinformationen gefüllt werden. Dieser Slot darf nicht über Threadgrenzen hinweg verwendet werden.
const QString &QOpcUaGdsClient::backend() const
Gibt die aktuelle Backend-Einstellung zurück.
Wenn das Backend nach dem Start des Clients geändert wurde, wird die geänderte Einstellung zurückgegeben, nicht aber 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 ausgegeben, wenn der GDS-Client eine neue Liste von certificateGroups für diese Anwendung erhält.
[signal]
void QOpcUaGdsClient::certificateUpdateRequired()
Dieses Signal wird ausgegeben, wenn der GDS-Client feststellt, dass eine Aktualisierung des aktuell verwendeten Zertifikats erforderlich ist.
Dies kann durch den Server verursacht werden, der den Client zur Aktualisierung des Zertifikats auffordert, wenn das Fälligkeitsdatum des Zertifikats erreicht ist oder wenn das Zertifikat selbstsigniert ist.
Die Aktualisierung des Zertifikats wird automatisch durchgeführt. Dieses Signal dient nur zur Information, dass eine Aktualisierung ansteht.
[signal]
void QOpcUaGdsClient::certificateUpdated()
Dieses Signal wird ausgegeben, wenn der GDS-Client ein neues Zertifikat erhalten hat, das auf der Festplatte gespeichert wurde.
const QOpcUaX509DistinguishedName &QOpcUaGdsClient::distinguishedNameCertificateSigningRequestPreset() const
Gibt den für Zertifikatsignierungsanfragen voreingestellten Distinguished Name zurück.
const QString &QOpcUaGdsClient::dnsCertificateSigningRequestPreset() const
Gibt die DNS-Voreinstellung für Zertifikatsignierungsanfragen zurück.
const QOpcUaEndpointDescription &QOpcUaGdsClient::endpoint() const
Gibt die aktuelle Endpunkteinstellung zurück.
Wenn der Endpunkt nach dem Start des Clients geändert wurde, wird die geänderte Einstellung zurückgegeben, nicht aber 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 Anwendungsidentität appIdentity fest, die vom Client verwendet werden soll.
Diese Identität wird verwendet, um sich beim GDS-Server zu registrieren. Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkung.
Siehe auch applicationIdentity().
void QOpcUaGdsClient::setApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord)
Legt die vom Client zu verwendenden Anwendungssatzdaten appRecord fest.
Diese Daten werden verwendet, um sich beim GDS-Server zu registrieren. Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden.
Die meisten Daten sind dieselben wie in der Anwendungsidentität. Nach der Registrierung kann die zugewiesene Anwendungs-ID abgefragt werden.
Siehe auch applicationRecord() und setApplicationIdentity.
void QOpcUaGdsClient::setBackend(const QString &backend)
Setzt das vom Client zu verwendende Backend für die Kommunikation mit dem Server auf backend.
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 für die Überprüfung der Gültigkeit des Client-Zertifikats auf interval fest.
Siehe auch certificateCheckInterval().
void QOpcUaGdsClient::setCertificateSigningRequestPresets(const QOpcUaX509DistinguishedName &dn, const QString &dns)
Legt die Voreinstellungen für Zertifikatsignierungsanforderungen fest; den Distinguished Name dn und die DNS-Zeichenfolge dns.
Bei der Erstellung einer Zertifikatsignierungsanforderung werden einige zusätzliche Informationen benötigt, die nicht von der Anwendungsidentität bereitgestellt werden.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden.
Siehe auch setApplicationIdentity().
void QOpcUaGdsClient::setEndpoint(const QOpcUaEndpointDescription &endpoint)
Setzt den Endpunkt, der vom Client für die Kommunikation mit dem Server verwendet werden soll, auf endpoint.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkung.
Die Kommunikation mit einem GDS-Server ist nur über einen verschlüsselten Endpunkt möglich. Die Verwendung eines unverschlüsselten Endpunktes wird fehlschlagen.
Siehe auch endpoint().
void QOpcUaGdsClient::setPkiConfiguration(const QOpcUaPkiConfiguration &pkiConfig)
Legt die PKI-Konfiguration pkiConfig fest, die vom Client verwendet werden soll.
Alle Zertifikate, Schlüssel und Vertrauenslisten werden von den angegebenen Orten verwendet oder dort gespeichert. Um das vom GDS erhaltene Zertifikat zu verwenden, muss die gleiche Konfiguration mit QOpcUaClient verwendet werden.
Diese Funktion muss vor dem Start des GDS-Clients aufgerufen werden. Eine nachträgliche Änderung dieser Einstellung hat keine Auswirkung.
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
- setEndpoing
- setApplicationIdentity
- setPkiConfiguration
- setApplicationRecord
- setCertificateSigingRequestPresets
QOpcUaGdsClient::State QOpcUaGdsClient::state() const
Gibt den aktuellen Zustand des Clients zurück.
[signal]
void QOpcUaGdsClient::stateChanged(QOpcUaGdsClient::State state)
Dieses Signal wird ausgesendet, wenn sich der interne Zustand des Clients ändert. Die state zeigt den neuen Zustand an.
int QOpcUaGdsClient::trustListUpdateInterval() const
Gibt das Intervall in Millisekunden für die Aktualisierung der Vertrauensliste vom Server zurück.
Siehe auch setTrustListUpdateInterval().
[signal]
void QOpcUaGdsClient::trustListUpdated()
Dieses Signal wird ausgegeben, wenn der GDS-Client eine neue Vertrauensliste vom Server erhalten und auf der Festplatte gespeichert hat.
void QOpcUaGdsClient::unregisterApplication()
Deregistriert eine Anwendung vom Server.
Diese Funktion kann verwendet werden, wenn eine Anwendung dauerhaft aus dem Netz entfernt werden soll. Sie muss nicht beim Neustart oder Herunterfahren aufgerufen werden.
[signal]
void QOpcUaGdsClient::unregistered()
Dieses Signal wird ausgegeben, wenn der GDS-Client die Registrierung der Anwendung aufgehoben hat.
© 2025 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.