29 UaStatus ret = OpcUa_Good;
32 UaNodeId uaId, uaMethId;
33 UaVariant defaultValue;
35 defaultValue.setBool(0);
38 pStartProgramItem =
new UaProgramStartVariable(
"StartProgram", uaId, pNodeManager, defaultValue,
this, parent->getSharedMutex());
40 pStartProgramItem->setValueHandling(UaVariable_Value_Cache);
42 ret = pNodeManager->addNodeAndReference(
this, pStartProgramItem, OpcUaId_HasComponent);
44 UA_ASSERT(ret.isGood());
46 defaultValue.setStatusCode(OpcUa_Good);
53 ret = pNodeManager->addNodeAndReference(
this,
m_pErrorItem, OpcUaId_HasComponent);
55 UA_ASSERT(ret.isGood());
61 OpcUa_UInt32 numericIdentifier;
62 string mname = mitem->command().get();
65 else if (mname ==
"write")
68 UaNodeId uaMethId = pNodeManager->
getNewNodeId(parent, mname.c_str());
70 ret = pNodeManager->addUaReference(
this, methNode, OpcUaId_HasComponent);
71 UA_ASSERT(ret.isGood());
76 UaString address = mitem->address().get().c_str();
78 UaNodeId adrNodeId = pNodeManager->
getNewNodeId(parent, address);
81 UaString
name = mname.c_str();
87 ret = pNodeManager->addNodeAndReference(
this, pUaMethod, OpcUaId_HasComponent);
89 UA_ASSERT(ret.isGood());
91 ret = pNodeManager->addUaReference(pUaMethod, adrNode, pNodeManager->m_pControlInterface->getTypeNodeId(
BA_HASADDRESS));
92 UA_ASSERT(ret.isGood());
94 UaString valueMethod = mitem->value().get().c_str();
95 UaNodeId vNodeId = pNodeManager->getNewNodeId(
this, valueMethod);
96 defaultValue = *adrNode->value(0).value();
100 ret = pNodeManager->addNodeAndReference(
this, ucv, OpcUaId_HasComponent);
101 UA_ASSERT(ret.isGood());
103 ret = pNodeManager->addUaReference(pUaMethod, ucv, pNodeManager->m_pControlInterface->getTypeNodeId(
BA_HASVALUE));
104 UA_ASSERT(ret.isGood());
162 UaStatus ret = OpcUa_Good;
164 UaReferenceLists *uaList = getUaReferenceLists();
165 for (UaReference *pRef = (UaReference *)uaList->pTargetNodes(); pRef != 0; pRef = pRef->pNextForwardReference()) {
166 UaNode *ptNode = pRef->pTargetNode();
167 if (ptNode->nodeClass() == OpcUa_NodeClass_Method) {
170 UaDataValue dataValue;
172 udt = UaDateTime::now();
173 sdt = UaDateTime::now();
174 UaVariant val = ret.statusCode();
175 dataValue.setDataValue(val, OpcUa_False, ret.statusCode(), udt, sdt);