QOpcUaGdsClient Class

GDSサーバーとの通信を処理する。詳細...

Header: #include <QOpcUaGdsClient>
CMake: find_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmake: QT += opcua
Inherits: 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;

// In case the credentials are needed
QObject::connect(&c, &QOpcUaGdsClient::authenticationRequired, [&](QOpcUaAuthenticationInformation &authInfo) {
        authInfo.setUsernameAuthentication("root", "secret");
 });

// Await success
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::NoError0すべて正常
QOpcUaGdsClient::Error::InvalidBackend1バックエンドをインスタンス化できませんでした。指定されたバックエンド文字列がどのバックエンドにもマッチしないか、プラグインのロードに失敗しました。
QOpcUaGdsClient::Error::InvalidEndpoint2指定されたエンドポイントは無効です。
QOpcUaGdsClient::Error::ConnectionError3サーバ・エンドポイントへの接続に失敗しました。
QOpcUaGdsClient::Error::DirectoryNodeNotFound4サーバ上のディレクトリ・ノードを解決できませんでした。
QOpcUaGdsClient::Error::FailedToRegisterApplication5アプリケーションの登録に失敗しました。
QOpcUaGdsClient::Error::FailedToUnregisterApplication6アプリケーションの登録解除に失敗しました。
QOpcUaGdsClient::Error::FailedToGetCertificateStatus7現在の証明書のステータスを取得できませんでした。
QOpcUaGdsClient::Error::FailedToGetCertificate8サーバから証明書を取得できなかった。

enum class QOpcUaGdsClient::State

この列挙型は、GDS クライアントの現在の登録状態を指定するために使用される。

定数説明
QOpcUaGdsClient::State::Idle0クライアントはまだ開始されていません。
QOpcUaGdsClient::State::BackendInstantiated1バックエンドがインスタンス化された
QOpcUaGdsClient::State::Connecting2サーバへの接続が行われている
QOpcUaGdsClient::State::Connected3サーバ・エンドポイントへの接続に成功しました。
QOpcUaGdsClient::State::RegisteringApplication4アプリケーションをサーバーに登録中です。
QOpcUaGdsClient::State::ApplicationRegistered5アプリケーションのサーバへの登録に成功しました。
QOpcUaGdsClient::State::Error6エラーが発生しました。詳細は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 ) を設定します。

この ID は、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クライアントを起動する前に呼び出す必要があります。

GDS サーバーとの通信は暗号化されたエンドポイントを介してのみ可能です。暗号化されていないエンドポイントを使用すると失敗します。

endpoint()も参照してください

void QOpcUaGdsClient::setPkiConfiguration(const QOpcUaPkiConfiguration &pkiConfig)

クライアントが使用する PKI 構成pkiConfig を設定します。

すべての証明書、鍵、およびトラスト・リストは、指定された場所か ら使用されるか、指定された場所に格納される。GDS から受信した証明書を使用するには、同じ構成をQOpcUaClient で使用する必要がある。

この関数はGDSクライアントを起動する前に呼び出す必要があります。この設定は、GDSクライアントを起動する前に呼び出す必要がある。

pkiConfiguration()も参照のこと

void QOpcUaGdsClient::setTrustListUpdateInterval(int interval)

サーバーからのトラスト・リストを更新する間隔をミリ秒単位でinterval に設定する。

trustListUpdateInterval()も参照して ください。

void QOpcUaGdsClient::start()

クライアント・プロセスを開始します。

すべての情報を設定した後、クライアントを起動できます。

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クライアントがアプリケーションの登録を解除したときに発行されます。

本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。