服务器发现 QML 类型

提供有关可用服务器信息。更多信息...

导入语句import QtOpcUa
QtOpcUa 5.13

属性

方法

  • ApplicationDescription at(index)

详细说明

允许获取和访问已知服务器信息。

QtOpcUa.Connection {
    id: connection
    backend: availableBackends[0]
    defaultConnection: true
}

QtOpcUa.ServerDiscovery {
    discoveryUrl: "opc.tcp://127.0.0.1:43344"
    onServersChanged: {
        if (status.isGood) {
            if (status.status == QtOpcUa.Status.GoodCompletesAsynchronusly)
                return; // wait until finished
            if (count > 0) {
                // choose right server
                endpointDiscovery.serverUrl = at(0).discoveryUrls[0];
                console.log("Using server URL:", endpointDiscovery.serverUrl);
            } else {
                // no servers retrieved
            }
        } else {
            // Fetching servers failed
            console.log("Error fetching server:", servers.status.status);
        }
    }
}

QtOpcUa.EndpointDiscovery {
    id: endpointDiscovery
    onEndpointsChanged: {
        if (status.isGood) {
            if (status.status == QtOpcUa.Status.GoodCompletesAsynchronusly)
                return; // wait until finished
            if (count > 0) {
                // choose right endpoint
                console.log("Using endpoint", at(0).endpointUrl, at(0).securityPolicy);
                connection.connectToEndpoint(at(0));
            } else {
                // no endpoints retrieved
            }
        } else {
            // Fetching endpoints failed
            console.log("Error fetching endpoints:", status.status);
        }
    }
}

属性说明

connection : Connection

用于请求信息的连接。

如果未设置此属性,将使用默认连接,如果有的话。

另请参阅ConnectionConnection::defaultConnection


count : int

此元素中当前服务器的数量。在使用此服务器发现的数据之前,您应检查 status 如果信息检索成功。

另请参阅statusStatus


discoveryUrl : string

从获取服务器列表的 URL。每次更改 URL 时,都会启动对该给定服务器的请求。

在开始请求时,可用服务器的列表会被清除,并设置状态为 Status.GoodCompletesAsynchronously。请求完成时,status 会发生变化。在访问服务器列表之前,请确保已检查 status

onServersChanged: {
        if (status.isGood) {
            if (status.status == QtOpcUa.Status.GoodCompletesAsynchronusly)
                return; // wait until finished
            if (count > 0) {
                var serverUrl = at(0).serverUrl();
                console.log(serverUrl);
            }
        } else {
            // handle error
        }
}

另请参阅ApplicationDescriptionstatusatcountStatus


status : Status

此元素当前的状态。如果在服务器检索成功,状态应该是 Status.Good

if (status.isGood) {
    // Choose endpoint to connect to
} else {
    // handle error
}

另请参阅Status


方法说明

返回给定索引处的应用程序描述。如果没有可用的服务器或索引无效,将返回无效的应用程序描述。在使用任何返回数据之前,您应检查状态以确认信息检索是否成功。

if (servers.status.isGood) {
    if (servers.count > 0)
        var serverUrl = at(0).serverUrl();
        console.log(serverUrl);
        // Choose endpoint to connect to
} else {
    // handle error
}

另请参阅 数量状态应用程序描述


© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。提供的文档受GNU自由文档许可版本1.3的条款约束,由自由软件基金会发布。Qt及其相应标志是The Qt Company Ltd.在芬兰和/或世界其他国家的注册商标。所有其他商标均为各自所有者的财产。