一个客户已经实现了OPC-UA服务器,并提供了一些文档供我们访问。我们仅有的信息是与服务器联系的端点以及数据点链接到的标签。
我必须实现一个客户端,而无需访问服务器对其进行测试。这是足够的信息吗?我想我们至少需要一些名称空间uri。据我了解,为了使用get(id)
之类的功能,我还需要知道一些名称空间ID。
例如,在python-opcua中,它将类似于:
public void doSomething(MyObj id){
// see https://stackoverflow.com/q/322715/2711488
List<Map<String, List<String>>> mapsList = new ArrayList<>();
for(Map.Entry<MyObj, Map<String, List<String>>> e: conMap.entrySet()){
if(e.getKey().key1.equals(id.key1)){
mapsList.add(e.getValue());
}
}
for(Map<String, List<String>> map: mapsList){
synchronized(map) {
//...
}
}
}
(虽然不起作用,但这是另一个问题)
我以某种方式找到的客户端示例都使用硬编码的名称空间ID并没有帮助。
答案 0 :(得分:0)
TranslateBrowsePathToNodeIds ,因为您知道BrowseNames的路径,因为它们由路径中每个节点的类型定义来定义。
如果这听起来不像您的情况,那么您应该向后推文档以包括您需要访问的所有节点的NodeId。