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.
| Constante | Valeur | Description de l'erreur |
|---|---|---|
QOpcUaGdsClient::Error::NoError | 0 | Tout va bien |
QOpcUaGdsClient::Error::InvalidBackend | 1 | Le 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::InvalidEndpoint | 2 | Le point d'accès donné n'est pas valide. |
QOpcUaGdsClient::Error::ConnectionError | 3 | La connexion au point de terminaison du serveur a échoué. |
QOpcUaGdsClient::Error::DirectoryNodeNotFound | 4 | Le nœud du répertoire sur le serveur n'a pas pu être résolu. |
QOpcUaGdsClient::Error::FailedToRegisterApplication | 5 | L'enregistrement de l'application a échoué. |
QOpcUaGdsClient::Error::FailedToUnregisterApplication | 6 | Le désenregistrement de l'application a échoué. |
QOpcUaGdsClient::Error::FailedToGetCertificateStatus | 7 | L'état du certificat actuel n'a pas pu être récupéré. |
QOpcUaGdsClient::Error::FailedToGetCertificate | 8 | Un 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.
| Constante | Valeur | Description de l'état |
|---|---|---|
QOpcUaGdsClient::State::Idle | 0 | Le client n'a pas encore été démarré. |
QOpcUaGdsClient::State::BackendInstantiated | 1 | Le backend a été instancié |
QOpcUaGdsClient::State::Connecting | 2 | Une connexion au serveur est en cours |
QOpcUaGdsClient::State::Connected | 3 | La connexion au point de terminaison du serveur a réussi. |
QOpcUaGdsClient::State::RegisteringApplication | 4 | L'application est en cours d'enregistrement auprès du serveur. |
QOpcUaGdsClient::State::ApplicationRegistered | 5 | L'enregistrement de l'application auprès du serveur a réussi. |
QOpcUaGdsClient::State::Error | 6 | Une 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é.
- setBackend
- setEndpoing
- setApplicationIdentity
- setPkiConfiguration
- setApplicationRecord
- setCertificateSigingRequestPresets
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.