Spec-Zone.ru › Qt 6.1

Класс 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 & бэкэнд() const
int интервалПроверкиСертификатов() const
const QOpcUaX509DistinguishedName & предварительныйОбразецЗапросаПодписиСертификатаDistinguishedName() const
const QString & предварительныйОбразецЗапросаПодписиСертификатаDNS() const
const QOpcUaEndpointDescription & конечнаяТочка() const
QOpcUaGdsClient::Ошибка ошибка() const
const QOpcUaPkiConfiguration & настройкаPKI() const
void установитьApplicationIdentity(const QOpcUaApplicationIdentity &appIdentity)
void установитьApplicationRecord(const QOpcUaApplicationRecordDataType &appRecord)
void установитьБэкэнд(const QString &backend)
void установитьИнтервалПроверкиСертификатов(int interval)
void установитьПредварительныеОбразцыЗапросовПодписиСертификатов(const QOpcUaX509DistinguishedName &dn, const QString &dns)
void установитьКонечнуюТочку(const QOpcUaEndpointDescription &endpoint)
void установитьНастройкуPKI(const QOpcUaPkiConfiguration &pkiConfig)
void установитьИнтервалОбновленияДоверенногоСписка(int interval)
void запустить()
QOpcUaGdsClient::Состояние состояние() const
int интервалОбновленияДоверенногоСписка() const
void отменитьРегистрациюПриложения()

Сигналы

void приложениеЗарегистрировано()
void требуетсяАвторизация(QOpcUaAuthenticationInformation &authInfo)
void полученыГруппыСертификатов(QStringList certificateGroups)
void необходимоОбновитьСертификат()
void сертификатОбновлён()
void измениласьОшибка(QOpcUaGdsClient::Ошибка error)
void состояниеИзменилось(QOpcUaGdsClient::Состояние state)
void доверенныйСписокОбновлён()
void отписано()

Подробное описание

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

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

Для участия в защищенной сети требуется лишь несколько деталей.

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

Ожидая успешного выполнения всего процесса, необходимо подождать сигнала приложениеЗарегистрировано.

Большинство структур настройки должны быть такими же, как и при подключении к 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

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

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

END_OF_DOCUMENT_MARKER

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.1/qopcuagdsclient.html

Spec-Zone.ru

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