连接 QML 类型
连接到服务器。 更多信息...
导入语句 | import QtOpcUa |
自从 | QtOpcUa 5.12 |
属性
- authenticationInformation : AuthenticationInformation
- availableBackends : stringlist
- backend : string
- connected : bool
- connection : QOpcUaClient
- currentEndpoint : QOpcUaEndpointDescription
- defaultConnection : bool
- namespaces : stringlist
- supportedSecurityPolicies : stringlist
- supportedUserTokenTypes : array[tokenTypes]
信号
- nodeChanged()
- readNodeAttributesFinished(readResults)
- writeNodeAttributesFinished(writeResults)
方法
- connectToEndpoint(endpointDescription)
- disconnectFromEndpoint()
- readNodeAttributes(valuesToBeRead)
- writeNodeAttributes(valuesToBeWritten)
详细描述
主要的 API 使用后端来建立连接。在尝试任何连接之前,必须设置后端。
import QtOpcUa as QtOpcUa QtOpcUa.Connection { backend: "open62541" } Component.onCompleted: { connection.connectToEndpoint("opc.tcp://127.0.0.1:43344"); }
属性文档
authenticationInformation : AuthenticationInformation |
将认证信息设置为此连接。必须在调用 connectToEndpoint 之前设置认证信息。如果没有设置认证信息,将使用匿名模式。它对当前连接没有影响。如果客户端断开连接并重新连接,将使用新的凭据。在设置 backend 之前读取和写入此属性,写入会被忽略,读取返回无效的 AuthenticationInformation。
availableBackends : stringlist |
作为列表返回所有可用后端的名称。在选择连接时使用。
另请参阅 Connection::backend。
backend : string |
设置用于连接到服务器的后端。在尝试任何连接之前必须设置。
connected : bool |
连接的状态。当存在连接时,为true
,否则为false
。
connection : QOpcUaClient |
此属性仅用于从C++中注入连接。在连接设置复杂的情况下,可以使用C++处理所有详细信息。连接建立后,可以使用此属性将其传递给QML。客户端的所有权会转移到QML。
class MyClass : public QObject { Q_OBJECT Q_PROPERTY(QOpcUaClient* connection READ connection NOTIFY connectionChanged) public: MyClass (QObject* parent = nullptr); QOpcUaClient *connection() const; signals: void connectionChanged(QOpcUaClient *);
在客户端设置完成时发出信号 connectionChanged
,下面的QML代码将使用此连接。
import QtOpcUa as QtOpcUa MyClass { id: myclass } QtOpcUa.Connection { connection: myclass.connection }
currentEndpoint : QOpcUaEndpointDescription |
连接的服务器的端点描述。如果连接尚未建立,则返回空端点描述。
defaultConnection : bool |
将其设为默认连接。通常每个节点都需要指定一个连接才能使用。如果此属性设置为true
,则在没有设置连接的所有情况下都将使用此连接。已建立的连接不受影响。如果多个连接上将defaultConnection设置为true
,则最后一个被使用。
QtOpcUa.Connection { ... defaultConnection: true ... }
另请参阅节点。
namespaces : stringlist |
连接的服务器上注册的所有命名空间URI的字符串列表。
supportedSecurityPolicies : stringlist |
包含支持的安全策略的字符串列表
此属性目前作为技术预览提供,因此API和提供的功能可能会在任何时候更改,恕不另行通知。
supportedUserTokenTypes : array[tokenTypes] |
所有支持的用户令牌类型的用户令牌策略类型数组。
此属性目前作为技术预览提供,因此API和提供的功能可能会在任何时候更改,恕不另行通知。
信号文档
nodeChanged() |
当底层节点发生变化时发出。这发生在NodeId的命名空间或标识符更改时。
注意:相应的事件处理函数是onNodeChanged
。
readNodeAttributesFinished(readResults) |
当使用readNodeAttributes()启动的读取请求完成后发出。参数readResults是包含从服务器请求的值的ReadResult条目数组。
connection.onReadNodeAttributesFinished(results) { for (var i = 0; results.length; i++) { if (results[i].status.isGood) { console.log(results[i].value); } else { // handle error } } }
注意:相应的事件处理函数是onReadNodeAttributesFinished
。
另请参阅readNodeAttributes() 和 ReadResult。
writeNodeAttributesFinished(writeResults) |
当使用writeNodeAttributes()启动的写入请求完成后发出。参数writeResults是包含从服务器请求的值的WriteResult条目数组。
for (var i = 0; i < writeResults.length; i++) { console.log(writeResults[i].nodeId); console.log(writeResults[i].namespaceName); console.log(writeResults[i].attribute); if (writeResults[i].status.isBad) { // value was not written } }
注意:相应的事件处理函数是onWriteNodeAttributesFinished
。
另请参阅writeNodeAttributes() 和 WriteResult。
方法文档
connectToEndpoint(endpointDescription) |
连接到用endpointDescription指定的端点。
另请参阅 端点描述.
disconnectFromEndpoint() |
断开已建立的连接。
readNodeAttributes(要读取的值) |
此函数用于一次性从服务器读取多个值。如果读取请求成功派发,则返回 true
。
要读取的值 参数必须是一个 ReadItem 条目的 JavaScript 数组。
// List of items to read var readItemList = []; // Item to be added to the list of items to be read var readItem; // Prepare an item to be read // Create a new read item and fill properties readItem = QtOpcUa.ReadItem.create(); readItem.ns = "http://qt-project.org"; readItem.nodeId = "s=Demo.Static.Scalar.Double"; readItem.attribute = QtOpcUa.Constants.NodeAttribute.DisplayName; // Add the prepared item to the list of items to be read readItemList.push(readItem); // Add further items [...] if (!connection.readNodeAttributes(readItemList)) { // handle error }
读取请求的结果通过信号 readNodeAttributesFinished() 提供。
另请参阅 readNodeAttributesFinished() 和 ReadItem。
writeNodeAttributes(要写入的值) |
此函数用于一次性将多个值写入到服务器。如果写入请求成功派发,则返回 true
。
要写入的值 参数必须是一个 WriteItem 条目的 JavaScript 数组。
// List of items to write var writeItemList = []; // Item to be added to the list of items to be written var writeItem; // Prepare an item to be written // Create a new write item and fill properties writeItem = QtOpcUa.WriteItem.create(); writeItem.ns = "http://qt-project.org"; writeItem.nodeId = "s=Demo.Static.Scalar.Double"; writeItem.attribute = QtOpcUa.Constants.NodeAttribute.Value; writeItem.value = 32.1; writeItem.valueType = QtOpcUa.Constants.Double; // Add the prepared item to the list of items to be written writeItemList.push(writeItem); // Add further items [...] if (!connection.writeNodeAttributes(writeItemList)) { // handle error }
写入请求的结果通过信号 Connection::writeNodeAttributesFinished() 提供。
© 2024 Qt 公司有限公司。包含在此处的文档贡献是相应所有者的版权。本文件提供的文档 根据 GNU 自由文档许可证版本 1.3 授权,由自由软件基金会发布。Qt 和相关标志是芬兰以及/或其他国家的 Qt 公司的商标。所有其他商标均为各自所有者的财产。