Browse Source

fixing a nasty bug

Stasik0 10 years ago
parent
commit
5117078377
1 changed files with 8 additions and 2 deletions
  1. 8 2
      src/server/ua_services_attribute.c

+ 8 - 2
src/server/ua_services_attribute.c

@@ -92,8 +92,13 @@ static void readValue(UA_Server *server, UA_TimestampsToReturn timestamps,
     case UA_ATTRIBUTEID_EVENTNOTIFIER:
         CHECK_NODECLASS(UA_NODECLASS_VIEW | UA_NODECLASS_OBJECT);
         v->hasVariant = UA_TRUE;
-        retval |= UA_Variant_copySetValue(&v->value, &((const UA_ViewNode *)node)->eventNotifier,
-                                          &UA_TYPES[UA_TYPES_BYTE]);
+        if(node->nodeClass == UA_NODECLASS_VIEW){
+        	retval |= UA_Variant_copySetValue(&v->value, &((const UA_ViewNode *)node)->eventNotifier,
+                                          	  &UA_TYPES[UA_TYPES_BYTE]);
+        } else {
+        	retval |= UA_Variant_copySetValue(&v->value, &((const UA_ObjectNode *)node)->eventNotifier,
+        	                                          	  &UA_TYPES[UA_TYPES_BYTE]);
+        }
         break;
 
     case UA_ATTRIBUTEID_VALUE:
@@ -172,6 +177,7 @@ static void readValue(UA_Server *server, UA_TimestampsToReturn timestamps,
             } else {
                 UA_DataValue val;
                 UA_DataValue_init(&val);
+
                 retval |= vn->variable.dataSource.read(vn->variable.dataSource.handle, UA_FALSE, &val);
                 if(retval != UA_STATUSCODE_GOOD)
                     break;