Spec-Zone.ru › Qt

Класс QOpcUaGdsClient

Обрабатывает взаимодействие с сервером GDS. Подробнее...

Заголовок: #include <QOpcUaGdsClient>
qmake: QT += opcua
С тех пор: Qt 5.14
Наследует: QObject
  • Список всех членов, включая унаследованные

Публичные типы

Перечисление Ошибка { БезОшибок, НеверныйБэкэнд, НеверныйКонечнаяТочка, ОшибкаПодключения, УзелКаталогаНеНайден, …, НеУдалосьПолучитьСертификат }
Перечисление Состояние { Неактивно, БэкэндИнициализирован, Подключение, Подключено, РегистрацияПриложения, …, Ошибка }

Публичные функции

QOpcUaGdsClient(QObject *parent = nullptr)
виртуальный ~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() 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() const
int trustListUpdateInterval() const
void unregisterApplication()

Сигналы

void applicationRegistered()
void authenticationRequired(QOpcUaAuthenticationInformation &authInfo)
void certificateGroupsReceived(QStringList certificateGroups)
void certificateUpdateRequired()
void certificateUpdated()
void errorChanged(QOpcUaGdsClient::Ошибка error)
void stateChanged(QOpcUaGdsClient::Состояние 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();

Документация по типу члена

Перечисление QOpcUaGdsClient::Ошибка

Это перечисление используется для указания ошибок, которые могут возникнуть во время процесса регистрации.

Константа Значение Описание
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)

Создает клиент GDS с parent в качестве родительского объекта.

[signal] void QOpcUaGdsClient::applicationRegistered()

Этот сигнал испускается, когда приложение было успешно зарегистрировано.

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

Этот сигнал испускается, когда клиент GDS пытается выполнить аутентификацию с сервером в первый раз, требующую административных привилегий.

authInfo должен быть заполнен действительной информацией об аутентификации. Этот слот не должен использоваться при переходе между потоками.

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

Этот сигнал испускается, когда клиент GDS получает новый список certificateGroups для этого приложения.

[signal] void QOpcUaGdsClient::certificateUpdateRequired()

Этот сигнал испускается, когда клиент GDS обнаруживает, что необходимо обновить текущий используемый сертификат.

Это может быть вызвано сервером, запрашивающим у клиента обновление сертификата, когда срок действия сертификата истек, или если сертификат самоподписанный.

Обновление сертификата обрабатывается автоматически. Этот сигнал служит только для информирования о предстоящем обновлении.

[signal] void QOpcUaGdsClient::certificateUpdated()

Этот сигнал испускается, когда клиент GDS получил новый сертификат, который был сохранён на диске.

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

Этот сигнал испускается, когда произошла ошибка error.

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

Этот сигнал испускается, когда внутреннее состояние клиента изменяется. state указывает новое состояние.

[signal] void QOpcUaGdsClient::trustListUpdated()

Этот сигнал испускается, когда клиент GDS получил новый список доверенных сертификатов с сервера и сохранил его на диск.

[signal] void QOpcUaGdsClient::unregistered()

Этот сигнал испускается, когда клиент GDS отменил регистрацию приложения.

[virtual] QOpcUaGdsClient::~QOpcUaGdsClient()

Удаляет клиент GDS.

QString QOpcUaGdsClient::applicationId() const

Возвращает идентификатор приложения, назначенный сервером.

Это сокращение для получения идентификатора приложения из данных записи приложения.

См. также applicationRecord().

const QOpcUaApplicationIdentity &QOpcUaGdsClient::applicationIdentity() const

Возвращает текущую applicationIdentity.

См. также setApplicationIdentity().

const QOpcUaApplicationRecordDataType &QOpcUaGdsClient::applicationRecord() const

Возвращает данные записи приложения, используемые клиентом.

См. также setApplicationRecord().

const QString &QOpcUaGdsClient::backend() const

Возвращает текущее значение бэкенда.

Если бэкенд был изменён после запуска клиента, он вернёт изменённое значение, но не фактически используемую экземпляр.

См. также setBackend().

int QOpcUaGdsClient::certificateCheckInterval() const

Возвращает интервал в миллисекундах для проверки валидности сертификата клиента.

См. также setCertificateCheckInterval().

const QOpcUaX509DistinguishedName &QOpcUaGdsClient::distinguishedNameCertificateSigningRequestPreset() const

Возвращает предопределённое значение Distinguished Name для запросов на подписание сертификатов.

const QString &QOpcUaGdsClient::dnsCertificateSigningRequestPreset() const

Возвращает предопределённое значение DNS для запросов на подписание сертификатов.

const QOpcUaEndpointDescription &QOpcUaGdsClient::endpoint() const

Возвращает текущее значение конечной точки.

Если конечная точка была изменена после запуска клиента, она вернёт изменённое значение, но не фактически используемую конечную точку.

См. также setEndpoint().

QOpcUaGdsClient::Error QOpcUaGdsClient::error() const

Возвращает текущее состояние ошибки.

const QOpcUaPkiConfiguration &QOpcUaGdsClient::pkiConfiguration() const

Возвращает текущую pkiConfiguration.

См. также setPkiConfiguration().

void QOpcUaGdsClient::setApplicationIdentity(const QOpcUaApplicationIdentity &appIdentity)

Устанавливает идентификатор приложения appIdentity, который будет использоваться клиентом.

Этот идентификатор используется для регистрации на сервере GDS. Эта функция должна быть вызвана до запуска клиента GDS. Изменение этого значения впоследствии не оказывает никакого влияния.

См. также applicationIdentity().

void QOpcUaGdsClient::setApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord)

Устанавливает данные записи приложения appRecord, которые будут использоваться клиентом.

Эти данные используются для регистрации на сервере GDS. Эту функцию необходимо вызвать перед запуском клиента GDS.

Большая часть данных идентична данным в идентификаторе приложения. После регистрации присвоенный идентификатор приложения можно получить.

См. также 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)

Устанавливает параметры запросов на подпись сертификатов; имя в виде distinguished name (dn) и строку DNS (dns).

При создании запроса на подпись сертификата требуется дополнительная информация, которая не предоставляется идентификатором приложения.

Эту функцию необходимо вызвать перед запуском клиента 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
  • setEndpoing
  • setApplicationIdentity
  • setPkiConfiguration
  • setApplicationRecord
  • setCertificateSigingRequestPresets

QOpcUaGdsClient::State QOpcUaGdsClient::state() const

Возвращает текущее состояние клиента.

int QOpcUaGdsClient::trustListUpdateInterval() const

Возвращает интервал в миллисекундах для обновления списка доверенных лиц с сервера.

См. также setTrustListUpdateInterval().

void QOpcUaGdsClient::unregisterApplication()

Деактивирует приложение на сервере.

Эту функцию можно использовать, когда приложение должно быть постоянно удалено из сети. Она не требуется при перезагрузке или выключении.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qopcuagdsclient.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API