QOpcUaGdsClient Class
GDSサーバーとの通信を処理します。詳細...
| ヘッダー: | #include <QOpcUaGdsClient> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
| qmake: | QT += opcua |
| 継承元: | QObject |
パブリック型
| enum class | Error { NoError, InvalidBackend, InvalidEndpoint, ConnectionError, DirectoryNodeNotFound, …, FailedToGetCertificate } |
| enum class | State { Idle, BackendInstantiated, Connecting, Connected, RegisteringApplication, …, Error } |
パブリック関数
| 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() |
シグナル
| 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() |
詳細な説明
このクラスは現在、テクノロジープレビューとして提供されており、そのため、このクラスが提供するAPIおよび機能は、事前の予告なくいつでも変更される可能性があります。
このクラスは、GDSサーバーとの通信に必要なすべての処理を処理します。アプリケーションに関する情報が提供されると、サーバーへの登録や鍵・証明書の管理を行います。
セキュアなネットワークに参加するために知っておくべき詳細はごくわずかです。
初回登録には、認証用のユーザー名とパスワードを用いた管理者権限が必要です。それ以降の認証はすべて、最初に取得した証明書を使用したアプリケーションベースで行われます。
プロセス全体が正常に完了するのを確認するには、「applicationRegistered 」シグナルが表示されるまで待つ必要があります。
設定構造体のほとんどは、その後のQOpcUaClient との接続時と同じである必要があり、共有することができます。
GDSクライアントの設定:
QOpcUaGdsClient c;
// 認証情報が必要な場合
QObject::connect(&c, &QOpcUaGdsClient::authenticationRequired, [&](QOpcUaAuthenticationInformation&authInfo) {
authInfo.setUsernameAuthentication("root", "secret");
});
// 接続成功を待機
QObject::connect(&c, &QOpcUaGdsClient::applicationRegistered, [&]() {
qDebug() << "Application" << c.applicationId() << "registered";
});
c.setBackend(...);
c.setEndpoint(...);
c.setApplicationIdentity(...);
c.setPkiConfiguration(...);
c.setApplicationRecord(...);
c.setCertificateSigningRequestPresets(...);
c.start();メンバ型のドキュメント
enum class QOpcUaGdsClient::Error
この列挙型は、登録プロセス中に発生する可能性のあるエラーを指定するために使用されます。
| 定数 | 値 | 説明 |
|---|---|---|
QOpcUaGdsClient::Error::NoError | 0 | すべて正常 |
QOpcUaGdsClient::Error::InvalidBackend | 1 | バックエンドをインスタンス化できませんでした。指定されたバックエンド文字列が、どのバックエンドとも一致しないか、プラグインの読み込みに失敗しました。 |
QOpcUaGdsClient::Error::InvalidEndpoint | 2 | 指定されたエンドポイントが無効です。 |
QOpcUaGdsClient::Error::ConnectionError | 3 | サーバーエンドポイントへの接続に失敗しました。 |
QOpcUaGdsClient::Error::DirectoryNodeNotFound | 4 | サーバー上のディレクトリノードを解決できませんでした |
QOpcUaGdsClient::Error::FailedToRegisterApplication | 5 | アプリケーションの登録に失敗しました。 |
QOpcUaGdsClient::Error::FailedToUnregisterApplication | 6 | アプリケーションの登録解除に失敗しました。 |
QOpcUaGdsClient::Error::FailedToGetCertificateStatus | 7 | 現在の証明書のステータスを取得できませんでした。 |
QOpcUaGdsClient::Error::FailedToGetCertificate | 8 | サーバーから証明書を取得できませんでした。 |
enum class QOpcUaGdsClient::State
この列挙型は、GDSクライアントの登録の現在の状態を指定するために使用されます。
| 定数 | 値 | 説明 |
|---|---|---|
QOpcUaGdsClient::State::Idle | 0 | クライアントはまだ起動されていません。 |
QOpcUaGdsClient::State::BackendInstantiated | 1 | バックエンドがインスタンス化されました。 |
QOpcUaGdsClient::State::Connecting | 2 | サーバーへの接続が実行中です |
QOpcUaGdsClient::State::Connected | 3 | サーバーエンドポイントへの接続に成功しました。 |
QOpcUaGdsClient::State::RegisteringApplication | 4 | アプリケーションがサーバーに登録されています。 |
QOpcUaGdsClient::State::ApplicationRegistered | 5 | サーバーへのアプリケーションの登録に成功しました。 |
QOpcUaGdsClient::State::Error | 6 | エラーが発生しました。詳細については、error() の戻り値とターミナルの出力を参照してください。 |
メンバ関数のドキュメント
QOpcUaGdsClient::QOpcUaGdsClient(QObject *parent = nullptr)
parent を親オブジェクトとして、GDSクライアントを構築します。
[virtual noexcept] QOpcUaGdsClient::~QOpcUaGdsClient()
GDSクライアントを破棄します。
QString QOpcUaGdsClient::applicationId() const
サーバーによって割り当てられたアプリケーションIDを返します。
これは、アプリケーションレコードデータからアプリケーションIDを取得するためのショートカットです。
applicationRecord()も参照してください 。
const QOpcUaApplicationIdentity &QOpcUaGdsClient::applicationIdentity() const
現在の applicationIdentity を返します。
setApplicationIdentity()も参照してください 。
const QOpcUaApplicationRecordDataType &QOpcUaGdsClient::applicationRecord() const
クライアントで使用されるアプリケーションレコードデータを返します。
setApplicationRecord()も参照してください 。
[signal] void QOpcUaGdsClient::applicationRegistered()
このシグナルは、アプリケーションの登録が正常に完了した際に発信されます。
[signal] void QOpcUaGdsClient::authenticationRequired(QOpcUaAuthenticationInformation &authInfo)
このシグナルは、GDSクライアントが、管理者権限を必要とするサーバーに対して初回認証を試みた際に発生します。
authInfo には有効な認証情報を入力する必要があります。このスロットは、スレッド境界を越えて使用してはなりません。
const QString &QOpcUaGdsClient::backend() const
現在のバックエンド設定を返します。
クライアントの起動後にバックエンドが変更された場合、変更後の設定が返されますが、実際に使用されているインスタンスは返されません。
setBackend()も参照してください 。
int QOpcUaGdsClient::certificateCheckInterval() const
クライアント証明書の有効性を確認するための所要時間をミリ秒単位で返します。
setCertificateCheckInterval()も参照してください 。
[signal] void QOpcUaGdsClient::certificateGroupsReceived(QStringList certificateGroups)
このシグナルは、GDSクライアントがこのアプリケーションのcertificateGroups の新しいリストを受信したときに発生します。
[signal] void QOpcUaGdsClient::certificateUpdateRequired()
このシグナルは、GDSクライアントが、現在使用中の証明書の更新が必要であると検出した際に発行されます。
これは、証明書の有効期限が到来した場合や、証明書が自己署名型である場合などに、サーバーがクライアントに対して証明書の更新を要求したことが原因である可能性があります。
証明書の更新は自動的に処理されます。このシグナルは、更新が行われることを知らせる情報提供のみを目的としています。
[signal] void QOpcUaGdsClient::certificateUpdated()
このシグナルは、GDSクライアントがディスク上に保存されていた新しい証明書を受信した際に発信されます。
const QOpcUaX509DistinguishedName &QOpcUaGdsClient::distinguishedNameCertificateSigningRequestPreset() const
証明書署名リクエスト用に事前設定された識別名を返します。
const QString &QOpcUaGdsClient::dnsCertificateSigningRequestPreset() const
証明書署名リクエスト用のDNSプリセットを返します。
const QOpcUaEndpointDescription &QOpcUaGdsClient::endpoint() const
現在のエンドポイント設定を返します。
クライアントの起動後にエンドポイントが変更された場合、変更後の設定が返されますが、実際に使用されているエンドポイントは返されません。
setEndpoint()も参照してください 。
QOpcUaGdsClient::Error QOpcUaGdsClient::error() const
現在のエラー状態を返します。
[signal] void QOpcUaGdsClient::errorChanged(QOpcUaGdsClient::Error error)
この信号は、error が発生した際に送信されます。
const QOpcUaPkiConfiguration &QOpcUaGdsClient::pkiConfiguration() const
現在の pkiConfiguration を返します。
setPkiConfiguration()も参照してください 。
void QOpcUaGdsClient::setApplicationIdentity(const QOpcUaApplicationIdentity &appIdentity)
クライアントが使用するアプリケーションID「appIdentity 」を設定します。
この識別子は、GDS サーバーへの登録に使用されます。この関数は、GDS クライアントを起動する前に呼び出す必要があります。後でこの設定を変更しても効果はありません。
applicationIdentity()も参照してください 。
void QOpcUaGdsClient::setApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord)
クライアントが使用するアプリケーションレコードデータ `appRecord ` を設定します。
このデータは、GDSサーバーへの登録に使用されます。この関数は、GDSクライアントを起動する前に呼び出す必要があります。
データのほとんどは、アプリケーションIDと同じです。登録後、割り当てられたアプリケーションIDを取得できます。
applicationRecord() およびsetApplicationIdentityも参照してください 。
void QOpcUaGdsClient::setBackend(const QString &backend)
クライアントがサーバーと通信する際に使用するバックエンドを、backend に設定します。
この関数は、GDSクライアントを起動する前に呼び出す必要があります。起動後にこの設定を変更しても効果はありません。
backend()、QOpcUaProvider::availableBackends()、およびstart()も参照してください 。
void QOpcUaGdsClient::setCertificateCheckInterval(int interval)
クライアント証明書の有効性を確認する間隔を、interval にミリ秒単位で設定します。
certificateCheckInterval()も参照してください 。
void QOpcUaGdsClient::setCertificateSigningRequestPresets(const QOpcUaX509DistinguishedName &dn, const QString &dns)
証明書署名要求のプリセットを設定します。区別名「dn 」およびDNS文字列「dns 」です。
証明書署名要求を作成する際には、アプリケーションIDでは提供されない追加情報が必要となります。
この関数は、GDS クライアントを起動する前に呼び出す必要があります。
setApplicationIdentity()も参照してください 。
void QOpcUaGdsClient::setEndpoint(const QOpcUaEndpointDescription &endpoint)
クライアントがサーバーと通信する際に使用するエンドポイントを `endpoint` に設定します。
この関数は、GDSクライアントを起動する前に呼び出す必要があります。起動後にこの設定を変更しても効果はありません。
GDS サーバーとの通信は、暗号化されたエンドポイントを通じてのみ可能です。暗号化されていないエンドポイントを使用すると、通信は失敗します。
endpoint()も参照してください 。
void QOpcUaGdsClient::setPkiConfiguration(const QOpcUaPkiConfiguration &pkiConfig)
クライアントが使用するPKI設定pkiConfig を設定します。
すべての証明書、鍵、および信頼リストは、指定された場所から使用されるか、またはそこに保存されます。GDS から受け取った証明書を使用するには、QOpcUaClient に対して同じ設定を使用する必要があります。
この関数は、GDSクライアントを起動する前に呼び出す必要があります。起動後にこの設定を変更しても効果はありません。
pkiConfiguration()も参照してください 。
void QOpcUaGdsClient::setTrustListUpdateInterval(int interval)
サーバーからinterval への信頼リストの更新間隔をミリ秒単位で設定します。
trustListUpdateInterval()も参照してください 。
void QOpcUaGdsClient::start()
クライアントプロセスを起動します。
すべての情報を設定した後、クライアントを起動できます。
- setBackend
- setEndpoint
- setApplicationIdentity
- setPkiConfiguration
- setApplicationRecord
- setCertificateSigningRequestPresets
QOpcUaGdsClient::State QOpcUaGdsClient::state() const
現在のクライアントの状態を返します。
[signal] void QOpcUaGdsClient::stateChanged(QOpcUaGdsClient::State state)
このシグナルは、クライアントの内部状態が変化した際に発信されます。state は、新しい状態を示します。
int QOpcUaGdsClient::trustListUpdateInterval() const
サーバーから信頼リストを更新するための間隔をミリ秒単位で返します。
setTrustListUpdateInterval()も参照してください 。
[signal] void QOpcUaGdsClient::trustListUpdated()
このシグナルは、GDSクライアントがサーバーから新しい信頼リストを受信し、それをディスクに保存したときに発信されます。
void QOpcUaGdsClient::unregisterApplication()
サーバーからアプリケーションの登録を解除します。
この関数は、アプリケーションをネットワークから完全に削除する必要がある場合に使用できます。再起動やシャットダウンの際には、この関数を呼び出す必要はありません。
[signal] void QOpcUaGdsClient::unregistered()
このシグナルは、GDSクライアントがアプリケーションの登録を解除した際に発行されます。
© 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.