5 #include "methodhandleuanode.h" 13 OpcUa::BaseObjectTypeGeneric* pDeclarationObject = NULL;
14 OpcUa::BaseMethod* pMethodDeclaration = NULL;
15 OpcUa::BaseDataVariableType* pDataVariable = NULL;
20 UaVariant defaultValue;
26 UaReferenceLists *uaList = instance->getUaReferenceLists();
27 for ( UaReference *pRef = (UaReference *)uaList->pTargetNodes(); pRef != 0; pRef = pRef->pNextForwardReference() ) {
28 OpcUa_UInt32 refType = pRef->referenceTypeId().identifierNumeric();
30 UaNode *ptNode = pRef->pTargetNode();
33 UaString newName(ptNode->browseName().name());
37 case OpcUaId_HasComponent:
38 switch (ptNode->nodeClass()) {
39 case OpcUa_NodeClass_Variable:
40 pDataVariable =
new UaControlDeviceItem(newName,uaId,pNodeManager,defaultValue,(UaVariableType*)ptNode,
conf,interf,getObjectMutex());
41 addStatus = pNodeManager->addNodeAndReference(cur,pDataVariable,OpcUaId_HasComponent);
42 UA_ASSERT(addStatus.isGood());
44 case OpcUa_NodeClass_ObjectType:
46 addStatus = pNodeManager->addNodeAndReference(cur,pDeclarationObject,OpcUaId_HasComponent);
47 UA_ASSERT(addStatus.isGood());
49 case OpcUa_NodeClass_Method:
50 pMethodDeclaration =
new UaDeviceMethod(cur,pNodeManager,(UaMethod *)ptNode,getObjectMutex());
51 addStatus = pNodeManager->addNodeAndReference(cur,pMethodDeclaration,OpcUaId_HasComponent);
52 UA_ASSERT(addStatus.isGood());
53 m_pMethod.push_back(pMethodDeclaration);
57 case OpcUaId_HasSubtype:
59 addStatus = UaControlNodeCreateByType(cur,ptNode,pNodeManager,
conf,interf);
60 UA_ASSERT(addStatus.isGood());
62 case OpcUaId_HasProperty:
64 addStatus = pNodeManager->addNodeAndReference(cur, pProperty, OpcUaId_HasProperty);
66 if (!addStatus.isGood())
68 std::cout <<
"While creating a property: " << pProperty->browseName().toString().toUtf8() << endl;
69 UA_ASSERT(addStatus.isGood());