Просмотр исходного кода

Fixed instantiation callback: We want to know which node was created from what type. Due to proper and consquetial typeDef handling, this reported mostly baseDataVariableTypes... which isn't helpful to userspace at all.

ichrispa лет назад: 8
Родитель
Сommit
f78131a469
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      src/server/ua_services_nodemanagement.c

+ 6 - 0
src/server/ua_services_nodemanagement.c

@@ -79,6 +79,9 @@ copyExistingVariable(UA_Server *server, UA_Session *session, const UA_NodeId *va
      * These objects may not be part of the nodes type.
      */
     copyChildNodesToNode(server, session, &node->nodeId, &res.addedNodeId, instantiationCallback);
+    if(instantiationCallback)
+        instantiationCallback->method(res.addedNodeId, node->nodeId, 
+                                      instantiationCallback->handle);
     
     UA_NodeId_deleteMembers(&res.addedNodeId);
     return res.statusCode;
@@ -130,6 +133,9 @@ copyExistingObject(UA_Server *server, UA_Session *session, const UA_NodeId *obje
      * These objects may not be part of the nodes type.
      */
     copyChildNodesToNode(server, session, &node->nodeId, &res.addedNodeId, instantiationCallback);
+    if(instantiationCallback)
+        instantiationCallback->method(res.addedNodeId, node->nodeId, 
+                                      instantiationCallback->handle);
     
     UA_NodeId_deleteMembers(&res.addedNodeId);