|
@@ -553,12 +553,12 @@ void appMockup_init() {
|
|
|
/*******************/
|
|
|
|
|
|
// WORKS
|
|
|
-UA_ExpandedNodeId ObjId_led1 = (UA_ExpandedNodeId){.nodeId = (UA_NodeId){.encodingByte = UA_NODEIDTYPE_TWOBYTE, .namespace = 0, .identifier.numeric = 110}, .namespaceUri = {-1, ((void *)0)}, .serverIndex = 0};
|
|
|
+UA_ExpandedNodeId ObjId_temperature1 = (UA_ExpandedNodeId){.nodeId = (UA_NodeId){.encodingByte = UA_NODEIDTYPE_TWOBYTE, .namespace = 0, .identifier.numeric = 110}, .namespaceUri = {-1, ((void *)0)}, .serverIndex = 0};
|
|
|
|
|
|
-// LED1
|
|
|
+// temperature sensor
|
|
|
UA_VariableNode *temperature1;
|
|
|
UA_VariableNode_new(&temperature1);
|
|
|
-temperature1->nodeId = ObjId_led1.nodeId;
|
|
|
+temperature1->nodeId = ObjId_temperature1.nodeId;
|
|
|
temperature1->nodeClass = UA_NODECLASS_VARIABLE;
|
|
|
temperature1->browseName = UA_QUALIFIEDNAME_STATIC("temperature1");
|
|
|
temperature1->displayName = UA_LOCALIZEDTEXT_STATIC("temperature1");
|
|
@@ -573,21 +573,39 @@ UA_Variant_new(&tmpNodeValue);
|
|
|
tmpNodeValue->arrayDimensionsLength = 0;
|
|
|
tmpNodeValue->arrayLength = 1;
|
|
|
tmpNodeValue->data = (void*)tmpFloat;
|
|
|
-
|
|
|
tmpNodeValue->vt = &UA_.types[UA_FLOAT];
|
|
|
-
|
|
|
UA_Variant_copy(tmpNodeValue, &temperature1->value);
|
|
|
|
|
|
-//FIXME: these two give - "Browse failed with error 'UncertainNotAllNodesAvailable'."
|
|
|
-//AddReference((UA_Node*)led1, &(UA_ReferenceNode){RefTypeId_Organizes, UA_TRUE, NS0EXPANDEDNODEID(84)}, ns0);
|
|
|
-AddReference((UA_Node*)root, &(UA_ReferenceNode){RefTypeId_Organizes, UA_FALSE, ObjId_led1}, ns0);
|
|
|
-
|
|
|
-//FIXME: this give no error, but also also does not show the node
|
|
|
-AddReference((UA_Node*)temperature1, &(UA_ReferenceNode){RefTypeId_Organizes, UA_TRUE, NS0EXPANDEDNODEID(84)}, ns0);
|
|
|
+AddReference((UA_Node*)root, &(UA_ReferenceNode){RefTypeId_Organizes, UA_FALSE, ObjId_temperature1}, ns0);
|
|
|
|
|
|
Namespace_insert(ns0,(UA_Node*)temperature1);
|
|
|
|
|
|
|
|
|
+UA_ExpandedNodeId ObjId_led1 = (UA_ExpandedNodeId){.nodeId = (UA_NodeId){.encodingByte = UA_NODEIDTYPE_TWOBYTE, .namespace = 0, .identifier.numeric = 111}, .namespaceUri = {-1, ((void *)0)}, .serverIndex = 0};
|
|
|
+// led1 sensor
|
|
|
+UA_VariableNode *led1;
|
|
|
+UA_VariableNode_new(&led1);
|
|
|
+led1->nodeId = ObjId_led1.nodeId;
|
|
|
+led1->nodeClass = UA_NODECLASS_VARIABLE;
|
|
|
+led1->browseName = UA_QUALIFIEDNAME_STATIC("led1");
|
|
|
+led1->displayName = UA_LOCALIZEDTEXT_STATIC("led1");
|
|
|
+led1->description = UA_LOCALIZEDTEXT_STATIC("led1");
|
|
|
+
|
|
|
+//Set node value
|
|
|
+UA_Variant *tmpNodeValue1;
|
|
|
+UA_Boolean *ledVal;
|
|
|
+UA_Boolean_new(&ledVal);
|
|
|
+*ledVal = UA_FALSE;
|
|
|
+UA_Variant_new(&tmpNodeValue1);
|
|
|
+tmpNodeValue1->arrayDimensionsLength = 0;
|
|
|
+tmpNodeValue1->arrayLength = 1;
|
|
|
+tmpNodeValue1->data = (void*)ledVal;
|
|
|
+tmpNodeValue1->vt = &UA_.types[UA_BOOLEAN];
|
|
|
+UA_Variant_copy(tmpNodeValue1, &led1->value);
|
|
|
+
|
|
|
+AddReference((UA_Node*)root, &(UA_ReferenceNode){RefTypeId_Organizes, UA_FALSE, ObjId_led1}, ns0);
|
|
|
+Namespace_insert(ns0,(UA_Node*)led1);
|
|
|
+
|
|
|
|
|
|
#if defined(DEBUG) && defined(VERBOSE)
|
|
|
uint32_t i;
|