error code 1082 表示节点已存在。

可能原因:

  1. 添加的节点已经存在,需要先删除该节点再添加。

  2. 重复命名节点,需要更改节点名称。

解决方法:

  1. 如果该节点已存在,可以先删除该节点再添加。

  2. 如果节点名称重复,需要更改节点名称,确保节点名称唯一。

可以通过以下代码检查节点是否已经存在:

UA_NodeId newNodeId = UA_NODEID_STRING(1, "newNode");
UA_Boolean exists = UA_Server_addrSpaceIsNodePresent(server, newNodeId);
if(exists == UA_TRUE) {
    printf("Node already exists.\n");
    //删除节点
} else {
    //添加节点
}

如果节点存在,则需要删除该节点:

UA_NodeId newNodeId = UA_NODEID_STRING(1, "newNode");
UA_Server_deleteNode(server, newNodeId, UA_TRUE);

如果节点不存在,则可以添加该节点:

UA_NodeId newNodeId = UA_NODEID_STRING(1, "newNode");
UA_QualifiedName browseName = UA_QUALIFIEDNAME(1, "newNode");
UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER);
UA_NodeId variableType = UA_NODEID_NULL;
UA_NodeId newNode = UA_Server_addVariableNode(server, newNodeId, parentNodeId, UA_NODEID_NULL, browseName, variableType, NULL, NULL);
if(newNode == UA_NODEID_NULL) {
    printf("Failed to add node.\n");
} else {
    printf("Added node: %s\n", UA_NodeId_toString(&newNode));
}
``
open62541 添加节点报出 error code1082

原文地址: https://www.cveoy.top/t/topic/hfKe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录