Browse Source

restore CreateMonitoredItems service but don't activate yet

Julius Pfrommer 11 years ago
parent
commit
9ac4775a75
2 changed files with 25 additions and 1 deletions
  1. 1 1
      src/ua_services.h
  2. 24 0
      src/ua_services_monitoreditems.c

+ 1 - 1
src/ua_services.h

@@ -47,7 +47,7 @@ UA_Int32 Service_Read(SL_Channel *channel, const UA_ReadRequest *request, UA_Rea
 // Service_Call
 
 /* Part 4: 5.12 MonitoredItem Service Set */
-// Service_CreateMonitoredItems
+// UA_Int32 Service_CreateMonitoredItems(SL_Channel *channel, const UA_CreateMonitoredItemsRequest *request, UA_CreateMonitoredItemsResponse *response);
 // Service_ModifyMonitoredItems
 // Service_SetMonitoringMode
 // Service_SetTriggering

+ 24 - 0
src/ua_services_monitoreditems.c

@@ -0,0 +1,24 @@
+#include "ua_services.h"
+
+#if 0
+/* Activate once the infrastructure for pushing events is in place. */
+
+UA_Int32 Service_CreateMonitoredItems(SL_Channel *channel, const UA_CreateMonitoredItemsRequest *request, UA_CreateMonitoredItemsResponse *response) {
+	if (request->itemsToCreateSize > 0) {
+		response->resultsSize = request->itemsToCreateSize;
+		UA_Array_new((void**)&(response->results),response->resultsSize,UA_MONITOREDITEMCREATERESULT);
+		for (int i=0;request->itemsToCreateSize > 0 && i < request->itemsToCreateSize;i++) {
+			UA_NodeId_printf("CreateMonitoredItems - itemToCreate=",&(request->itemsToCreate[i]->itemToMonitor.nodeId));
+			//FIXME: search the object in the namespace
+			if (request->itemsToCreate[i]->itemToMonitor.nodeId.identifier.numeric == 2253) { // server
+				response->results[i]->statusCode = UA_STATUSCODE_GOOD;
+				response->results[i]->monitoredItemId = 1024;
+			} else {
+				// response->results[i]->statusCode = UA_STATUSCODE_BAD_NODEIDUNKNOWN;
+				response->results[i]->statusCode = -1;
+			}
+		}
+	}
+}
+
+#endif