Sur cette page

QOpcUaGdsClient Class

Gère la communication avec le serveur GDS. Plus d'informations...

En-tête : #include <QOpcUaGdsClient>
CMake : find_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmake : QT += opcua
Hérite : QObject

Types publics

enum class Error { NoError, InvalidBackend, InvalidEndpoint, ConnectionError, DirectoryNodeNotFound, …, FailedToGetCertificate }
enum class State { Idle, BackendInstantiated, Connecting, Connected, RegisteringApplication, …, Error }

Fonctions publiques

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()

Signaux

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()

Description détaillée

Cette classe est actuellement disponible en tant qu'aperçu technologique et, par conséquent, l'API et les fonctionnalités fournies par la classe peuvent être modifiées à tout moment sans préavis.

Cette classe gère toutes les étapes nécessaires à la communication avec un serveur GDS. Fournie avec des informations sur l'application, elle effectue l'enregistrement auprès du serveur et la gestion des clés/certificats.

Seuls quelques détails doivent être connus pour participer à un réseau sécurisé.

Le premier enregistrement nécessite des privilèges administratifs en utilisant un nom d'utilisateur et un mot de passe pour l'authentification. Toutes les authentifications ultérieures sont basées sur l'application, en utilisant le certificat qui a été reçu en premier.

En attendant que l'ensemble du processus aboutisse, vous devez attendre le signal applicationRegistered.

La plupart des structures de configuration doivent être les mêmes que pour la connexion avec QOpcUaClient par la suite et peuvent être partagées.

Mise en place d'un client GDS :

QOpcUaGdsClient c ;// Au cas où les informations d'identification seraient nécessairesQObject::connect(&c, &QOpcUaGdsClient::authenticationRequired, [&](QOpcUaAuthenticationInformation &authInfo) { authInfo.setUsernameAuthentication("root", "secret") ; }) ;// En attente d'un succèsQObject::connect(&c, &QOpcUaGdsClient::applicationRegistered, [&]() {    qDebug() << "Application" << c.applicationId() << "registered";
}) ; c.setBackend(...) ; c.setEndpoint(...) ; c.setApplicationIdentity(...) ; c.setPkiConfiguration(...) ; c.setApplicationRecord(...) ; c.setCertificateSigningRequestPresets(...) ; c.start() ;

Documentation sur les types de membres

enum class QOpcUaGdsClient::Error

Cette énumération est utilisée pour spécifier les erreurs susceptibles de se produire au cours du processus d'enregistrement.

ConstanteValeurDescription de l'erreur
QOpcUaGdsClient::Error::NoError0Tout va bien
QOpcUaGdsClient::Error::InvalidBackend1Le backend n'a pas pu être instancié. La chaîne de caractères du backend donnée ne correspond à aucun backend ou le chargement du plugin a échoué.
QOpcUaGdsClient::Error::InvalidEndpoint2Le point d'accès donné n'est pas valide.
QOpcUaGdsClient::Error::ConnectionError3La connexion au point de terminaison du serveur a échoué.
QOpcUaGdsClient::Error::DirectoryNodeNotFound4Le nœud du répertoire sur le serveur n'a pas pu être résolu.
QOpcUaGdsClient::Error::FailedToRegisterApplication5L'enregistrement de l'application a échoué.
QOpcUaGdsClient::Error::FailedToUnregisterApplication6Le désenregistrement de l'application a échoué.
QOpcUaGdsClient::Error::FailedToGetCertificateStatus7L'état du certificat actuel n'a pas pu être récupéré.
QOpcUaGdsClient::Error::FailedToGetCertificate8Un certificat n'a pas pu être récupéré du serveur.

enum class QOpcUaGdsClient::State

Cette énumération est utilisée pour spécifier l'état actuel de l'enregistrement du client GDS.

ConstanteValeurDescription de l'état
QOpcUaGdsClient::State::Idle0Le client n'a pas encore été démarré.
QOpcUaGdsClient::State::BackendInstantiated1Le backend a été instancié
QOpcUaGdsClient::State::Connecting2Une connexion au serveur est en cours
QOpcUaGdsClient::State::Connected3La connexion au point de terminaison du serveur a réussi.
QOpcUaGdsClient::State::RegisteringApplication4L'application est en cours d'enregistrement auprès du serveur.
QOpcUaGdsClient::State::ApplicationRegistered5L'enregistrement de l'application auprès du serveur a réussi.
QOpcUaGdsClient::State::Error6Une erreur s'est produite. Voir la valeur de retour de error() et la sortie du terminal pour plus de détails.

Documentation des fonctions membres

QOpcUaGdsClient::QOpcUaGdsClient(QObject *parent = nullptr)

Construit un client GDS avec parent comme objet parent.

[virtual noexcept] QOpcUaGdsClient::~QOpcUaGdsClient()

Détruit un client GDS.

QString QOpcUaGdsClient::applicationId() const

Renvoie l'identifiant de l'application attribué par le serveur.

Il s'agit d'un raccourci pour recevoir l'identifiant de l'application à partir des données de l'enregistrement de l'application.

Voir aussi applicationRecord().

const QOpcUaApplicationIdentity &QOpcUaGdsClient::applicationIdentity() const

Renvoie l'applicationIdentity actuelle.

Voir aussi setApplicationIdentity().

const QOpcUaApplicationRecordDataType &QOpcUaGdsClient::applicationRecord() const

Renvoie les données d'enregistrement de l'application utilisées par le client.

Voir aussi setApplicationRecord().

[signal] void QOpcUaGdsClient::applicationRegistered()

Ce signal est émis lorsqu'une application a été enregistrée avec succès.

[signal] void QOpcUaGdsClient::authenticationRequired(QOpcUaAuthenticationInformation &authInfo)

Ce signal est émis lorsque le client GDS tente de s'authentifier pour la première fois auprès d'un serveur nécessitant des privilèges administratifs.

authInfo Le slot doit être rempli avec des informations d'authentification valides. Ce slot ne doit pas être utilisé en traversant les frontières des threads.

const QString &QOpcUaGdsClient::backend() const

Renvoie la configuration actuelle du backend.

Si le backend a été modifié après le démarrage du client, il retournera le paramètre modifié, mais pas l'instance actuellement utilisée.

Voir aussi setBackend().

int QOpcUaGdsClient::certificateCheckInterval() const

Renvoie l'intervalle en millisecondes pour la vérification de la validité du certificat du client.

Voir aussi setCertificateCheckInterval().

[signal] void QOpcUaGdsClient::certificateGroupsReceived(QStringList certificateGroups)

Ce signal est émis lorsque le client GDS reçoit une nouvelle liste de certificateGroups pour cette application.

[signal] void QOpcUaGdsClient::certificateUpdateRequired()

Ce signal est émis lorsque le client GDS détecte qu'une mise à jour du certificat actuellement utilisé est nécessaire.

Cela peut être causé par le serveur, qui demande au client de mettre à jour le certificat, lorsque la date d'échéance du certificat est atteinte ou si le certificat est auto-signé.

La mise à jour du certificat est gérée automatiquement. Ce signal ne sert qu'à informer qu'une mise à jour va avoir lieu.

[signal] void QOpcUaGdsClient::certificateUpdated()

Ce signal est émis lorsque le client GDS a reçu un nouveau certificat stocké sur le disque.

const QOpcUaX509DistinguishedName &QOpcUaGdsClient::distinguishedNameCertificateSigningRequestPreset() const

Renvoie le nom distinctif prédéfini pour les demandes de signature de certificat.

const QString &QOpcUaGdsClient::dnsCertificateSigningRequestPreset() const

Renvoie le préréglage DNS pour les demandes de signature de certificat.

const QOpcUaEndpointDescription &QOpcUaGdsClient::endpoint() const

Renvoie la configuration actuelle du point de terminaison.

Si le point de terminaison a été modifié après le démarrage du client, il retournera le paramètre modifié, mais pas le point de terminaison réellement utilisé.

Voir aussi setEndpoint().

QOpcUaGdsClient::Error QOpcUaGdsClient::error() const

Renvoie l'état d'erreur actuel.

[signal] void QOpcUaGdsClient::errorChanged(QOpcUaGdsClient::Error error)

Ce signal est émis lorsqu'un error s'est produit.

const QOpcUaPkiConfiguration &QOpcUaGdsClient::pkiConfiguration() const

Renvoie la configuration actuelle de pkiConfiguration.

Voir aussi setPkiConfiguration().

void QOpcUaGdsClient::setApplicationIdentity(const QOpcUaApplicationIdentity &appIdentity)

Définit l'identité de l'application appIdentity à utiliser par le client.

Cette identité est utilisée pour s'enregistrer auprès du serveur GDS. Cette fonction doit être appelée avant de démarrer le client GDS. Modifier ce paramètre par la suite n'a aucun effet.

Voir également applicationIdentity().

void QOpcUaGdsClient::setApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord)

Définit les données d'enregistrement de l'application appRecord à utiliser par le client.

Ces données sont utilisées pour s'enregistrer auprès du serveur GDS. Cette fonction doit être appelée avant de démarrer le client GDS.

La plupart des données sont les mêmes que celles de l'identité de l'application. Après l'enregistrement, l'identifiant de l'application peut être récupéré.

Voir également applicationRecord() et setApplicationIdentity.

void QOpcUaGdsClient::setBackend(const QString &backend)

Définit le backend à utiliser par le client pour communiquer avec le serveur à backend.

Cette fonction doit être appelée avant de démarrer le client GDS. Modifier ce paramètre par la suite n'a aucun effet.

Voir également backend(), QOpcUaProvider::availableBackends() et start().

void QOpcUaGdsClient::setCertificateCheckInterval(int interval)

Définit l'intervalle en millisecondes pour la vérification de la validité du certificat du client à interval.

Voir aussi certificateCheckInterval().

void QOpcUaGdsClient::setCertificateSigningRequestPresets(const QOpcUaX509DistinguishedName &dn, const QString &dns)

Définit les préréglages pour les demandes de signature de certificat ; le nom distinctif dn et la chaîne DNS dns.

Lors de la création d'une demande de signature de certificat, des informations supplémentaires sont nécessaires, qui ne sont pas fournies par l'identité de l'application.

Cette fonction doit être appelée avant de démarrer le client GDS.

Voir également setApplicationIdentity().

void QOpcUaGdsClient::setEndpoint(const QOpcUaEndpointDescription &endpoint)

Définit le point de terminaison à utiliser par le client pour communiquer avec le serveur à endpoint.

Cette fonction doit être appelée avant de démarrer le client GDS. La modification de ce paramètre par la suite n'a aucun effet.

La communication avec un serveur GDS n'est possible que par l'intermédiaire d'un point de terminaison crypté. L'utilisation d'un point de terminaison non crypté échouera.

Voir également endpoint().

void QOpcUaGdsClient::setPkiConfiguration(const QOpcUaPkiConfiguration &pkiConfig)

Définit la configuration de l'ICP pkiConfig à utiliser par le client.

Tous les certificats, clés et listes de confiance seront utilisés ou stockés aux emplacements indiqués. Pour utiliser le certificat reçu du GDS, la même configuration doit être utilisée avec QOpcUaClient.

Cette fonction doit être appelée avant de démarrer le client GDS. Modifier ce paramètre par la suite n'a aucun effet.

Voir également pkiConfiguration().

void QOpcUaGdsClient::setTrustListUpdateInterval(int interval)

Définit l'intervalle en millisecondes pour la mise à jour de la liste de confiance du serveur à interval.

Voir aussi trustListUpdateInterval().

void QOpcUaGdsClient::start()

Démarre le processus du client.

Après avoir configuré toutes les informations, le client peut être démarré.

QOpcUaGdsClient::State QOpcUaGdsClient::state() const

Renvoie l'état actuel du client.

[signal] void QOpcUaGdsClient::stateChanged(QOpcUaGdsClient::State state)

Ce signal est émis lorsque l'état interne du client change. Le site state indique le nouvel état.

int QOpcUaGdsClient::trustListUpdateInterval() const

Renvoie l'intervalle en millisecondes pour la mise à jour de la liste de confiance à partir du serveur.

Voir aussi setTrustListUpdateInterval().

[signal] void QOpcUaGdsClient::trustListUpdated()

Ce signal est émis lorsque le client GDS a reçu une nouvelle liste de confiance du serveur et l'a enregistrée sur le disque.

void QOpcUaGdsClient::unregisterApplication()

Désenregistre une application du serveur.

Cette fonction peut être utilisée lorsqu'une application doit être retirée définitivement du réseau. Il n'est pas nécessaire de l'appeler lors d'un redémarrage ou d'un arrêt.

[signal] void QOpcUaGdsClient::unregistered()

Ce signal est émis lorsque le client GDS a désenregistré l'application.

© 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.