QOpcUaProvider Class
QOpcUaProvider 会创建一个QOpcUaClient 的实例。更多内容...
| 标题: | #include <QOpcUaProvider> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
| qmake: | QT += opcua |
| 继承自: | QObject |
公共函数
| QOpcUaProvider(QObject *parent = nullptr) | |
| QOpcUaClient * | createClient(const QString &backend, const QVariantMap &backendProperties = QVariantMap()) |
静态公共成员
| QStringList | availableBackends() |
详细说明
QOpcUaProvider 允许用户通过使用 Qt 插件系统加载 QOpcUaPlugin 来创建QOpcUaClient 的实例。
示例
以下代码使用第一个可用的后端创建了一个客户端:
QOpcUaProvider provider;
QStringList available=provider.availableBackends();
if(!available.isEmpty()) {
QOpcUaClient*client =provider.createClient(available[0]);
if(client)
qDebug() << "Client successfully created";
}成员函数文档
[explicit] QOpcUaProvider::QOpcUaProvider(QObject *parent = nullptr)
根据给定的parent 创建一个新的OPC UA提供程序。
[static] QStringList QOpcUaProvider::availableBackends()
返回一个包含可用插件的QStringList 。
[invokable] QOpcUaClient *QOpcUaProvider::createClient(const QString &backend, const QVariantMap &backendProperties = QVariantMap())
通过将选定的backend 加载为插件并创建客户端对象,返回一个指向QOpcUaClient 对象的指针。如果插件加载失败,则返回nullptr 。
当不再需要该QOpcUaClient 对象时,用户应负责将其删除。
可选参数backendProperties 可用于以键值对的形式传递自定义的后端特定设置。这些设置仅适用于正在实例化的后端。
可用的设置包括
| 设置字符串 | 后端 | 描述 |
|---|---|---|
| minimumClientIterateIntervalMs | open62541 | 后端不再评估此参数,该参数已被clientIterateIntervalMs 取代。 |
| clientIterateIntervalMs | open62541 | 定义后端的客户端迭代间隔。如果客户端导致 CPU 负载过高,将此值设置为高于默认值可降低 CPU 负载,但代价是处理服务请求和订阅值更新的响应时间会增加。默认值为 50 毫秒。 |
| asyncRequestTimeoutMs | open62541 | 定义向 OPC UA 服务器发送异步请求的超时时间。如果服务器在超时发生前未对服务请求作出响应,则服务调用失败,且 finished 信号将包含一个bad 状态码。默认值为 15000 毫秒。 |
注意: 可通过元对象系统和 QML 调用此 函数。参见Q_INVOKABLE 。
© 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.