Here is an example to provide some context regarding my question. Is the first option valid? Which option would be best to use?
Option 1:
Code: Select all
void some_function()
{
OpcUa_NodeId referenceTypeId;
UaProvider_Poss_NodeInfo nodeInfo;
/* Initialize */
...
OpcUa_NodeId_Initialize(&referenceTypeId);
UaProvider_Poss_NodeInfo_Initialize(&nodeInfo);
...
/* Create node */
...
referenceTypeId.Identifier.Numeric = OpcUaId_Organizes;
referenceTypeId.NamespaceIndex = 0;
nodeInfo.NodeId.Identifier.String = "MainNode id";
nodeInfo.NodeId.NamespaceIndex = 0;
...
uStatus = UaProvider_Poss_CreateNode(pAddressSpace,&pNode,pParent,&referenceTypeId,&nodeInfo);
...
/* Create some sub-node */
...
referenceTypeId.Identifier.Numeric = OpcUaId_HasComponent;
referenceTypeId.NamespaceIndex = 0;
nodeInfo.NodeId.Identifier.String = "SubNode1 id";
nodeInfo.NodeId.NamespaceIndex = 0;
...
uStatus = UaProvider_Poss_CreateNode(pAddressSpace,&pNode,pParent,&referenceTypeId,&nodeInfo);
...
/* Create another sub-node */
...
referenceTypeId.Identifier.Numeric = OpcUaId_HasComponent;
referenceTypeId.NamespaceIndex = 0;
nodeInfo.NodeId.Identifier.String = "SubNode2 id";
nodeInfo.NodeId.NamespaceIndex = 0;
...
uStatus = UaProvider_Poss_CreateNode(pAddressSpace,&pNode,pParent,&referenceTypeId,&nodeInfo);
...
}
Code: Select all
void some_function()
{
OpcUa_NodeId referenceTypeId;
UaProvider_Poss_NodeInfo nodeInfo;
/* Initialize */
...
UaProvider_Poss_NodeInfo_Initialize(&nodeInfo);
...
/* Create node */
...
UaBase_CreateNumericNodeIdEx(&referenceTypeId, OpcUaId_HasComponent, 0);
UaBase_CreateStringNodeIdEx(&nodeInfo.NodeId, "MainNode id", 0);
...
uStatus = UaProvider_Poss_CreateNode(pAddressSpace,&pNode,pParent,&referenceTypeId,&nodeInfo);
...
/* Create some sub-node */
...
UaBase_CreateNumericNodeIdEx(&referenceTypeId, OpcUaId_HasComponent, 0);
UaBase_CreateStringNodeIdEx(&nodeInfo.NodeId, "SubNode1 id", 0);
...
uStatus = UaProvider_Poss_CreateNode(pAddressSpace,&pNode,pParent,&referenceTypeId,&nodeInfo);
...
/* Create another sub-node */
...
UaBase_CreateNumericNodeIdEx(&referenceTypeId, OpcUaId_HasComponent, 0);
UaBase_CreateStringNodeIdEx(&nodeInfo.NodeId, "SubNode2 id", 0);
...
uStatus = UaProvider_Poss_CreateNode(pAddressSpace,&pNode,pParent,&referenceTypeId,&nodeInfo);
...
}