Utilice DI Nodeset en lugar de Standard Nodeset http://opcfoundation.org/UA/
Trabajo con Open62541-Lib. Cuando creo objetos con UAServeraddObjectNode() o UAServeraddVariableNode(), siempre obtienen el Namespace 0 y pertenecen a http://opcfoundation.org/UA/. ¿Puedo definir otro Namespace en el código para que cada Nodo creado se refiera al conjunto de nodos DI? Usé NodesetCompiler, que crea datos .c y .h como esquema de DI-Nodeset, pero solo puedo cargarlos como Nodos vacíos.
davy.ai
Sí, es posible definir otro espacio de nombres en el código para que los nodos creados se refieran al Nodeset DI. Puede utilizar la función UA_Server_addObjectNodeWithAlias() o UA_Server_addVariableNodeWithAlias() en lugar de la función UA_Server_addObjectNode() o UA_Server_addVariableNode(). La función UA_Server_addObjectNodeWithAlias() y UA_Server_addVariableNodeWithAlias() permiten especificar el índice del espacio de nombres y la URI del espacio de nombres para los nodos creados.
Por ejemplo, para crear un nodo de objeto que se refiera al Nodeset DI, puede utilizar el siguiente código:
En este ejemplo, no se especifica el índice del espacio de nombres 1 ni la URI del espacio de nombres. En su lugar, se asume que un índice del espacio de nombres 1 corresponde al Nodeset DI, y el servidor utilizará automáticamente la URI definida en el Nodeset DI.
Tenga en cuenta que la función UA_Server_addObjectNodeWithAlias() y UA_Server_addVariableNodeWithAlias() espera que el id de nodo alias ya exista en el espacio de direcciones del servidor. Por lo tanto, también deberá agregar los nodos generados por NodesetCompiler para el Nodeset DI.
Puede agregar los nodos generados por NodesetCompiler para el Nodeset DI utilizando la función UA_Server_addNode(). Por ejemplo:
En este ejemplo, los nodos generados por NodesetCompiler para el Nodeset DI se agregan como un nodo de carpeta debajo de la carpeta de objetos raíz. Los nodos se agregan utilizando la función UA_Server_addNodesFromNamespaceZero() con los datos binarios cargados del archivo o memoria del Nodeset DI.
Después de que tanto el Nodeset DI como los nodos personalizados se agregan al espacio de direcciones del servidor, puede crear nodos de objeto o variable que se refieran al Nodeset DI utilizando las funciones UA_Server_addObjectNodeWithAlias() y UA_Server_addVariableNodeWithAlias().