|
@@ -7,6 +7,7 @@
|
|
* Copyright 2017 (c) Thomas Bender
|
|
* Copyright 2017 (c) Thomas Bender
|
|
* Copyright 2017 (c) Julian Grothoff
|
|
* Copyright 2017 (c) Julian Grothoff
|
|
* Copyright 2017 (c) Henrik Norrman
|
|
* Copyright 2017 (c) Henrik Norrman
|
|
|
|
+ * Copyright 2018 (c) Fabian Arndt, Root-Core
|
|
*/
|
|
*/
|
|
|
|
|
|
#include "ua_server_internal.h"
|
|
#include "ua_server_internal.h"
|
|
@@ -583,7 +584,7 @@ UA_Server_initNS0(UA_Server *server) {
|
|
&maxBrowseContinuationPoints, &UA_TYPES[UA_TYPES_UINT16]);
|
|
&maxBrowseContinuationPoints, &UA_TYPES[UA_TYPES_UINT16]);
|
|
|
|
|
|
/* ServerProfileArray */
|
|
/* ServerProfileArray */
|
|
- UA_String profileArray[4];
|
|
|
|
|
|
+ UA_String profileArray[5];
|
|
UA_UInt16 profileArraySize = 0;
|
|
UA_UInt16 profileArraySize = 0;
|
|
#define ADDPROFILEARRAY(x) profileArray[profileArraySize++] = UA_STRING_ALLOC(x)
|
|
#define ADDPROFILEARRAY(x) profileArray[profileArraySize++] = UA_STRING_ALLOC(x)
|
|
ADDPROFILEARRAY("http://opcfoundation.org/UA-Profile/Server/NanoEmbeddedDevice");
|
|
ADDPROFILEARRAY("http://opcfoundation.org/UA-Profile/Server/NanoEmbeddedDevice");
|
|
@@ -596,6 +597,9 @@ UA_Server_initNS0(UA_Server *server) {
|
|
#ifdef UA_ENABLE_SUBSCRIPTIONS
|
|
#ifdef UA_ENABLE_SUBSCRIPTIONS
|
|
ADDPROFILEARRAY("http://opcfoundation.org/UA-Profile/Server/EmbeddedDataChangeSubscription");
|
|
ADDPROFILEARRAY("http://opcfoundation.org/UA-Profile/Server/EmbeddedDataChangeSubscription");
|
|
#endif
|
|
#endif
|
|
|
|
+#ifdef UA_ENABLE_HISTORIZING
|
|
|
|
+ ADDPROFILEARRAY("http://opcfoundation.org/UA-Profile/Server/HistoricalRawData");
|
|
|
|
+#endif
|
|
|
|
|
|
retVal |= writeNs0VariableArray(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_SERVERPROFILEARRAY,
|
|
retVal |= writeNs0VariableArray(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_SERVERPROFILEARRAY,
|
|
profileArray, profileArraySize, &UA_TYPES[UA_TYPES_STRING]);
|
|
profileArray, profileArraySize, &UA_TYPES[UA_TYPES_STRING]);
|
|
@@ -737,6 +741,64 @@ UA_Server_initNS0(UA_Server *server) {
|
|
retVal |= writeNs0Variable(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXMONITOREDITEMSPERCALL,
|
|
retVal |= writeNs0Variable(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXMONITOREDITEMSPERCALL,
|
|
&server->config.maxMonitoredItemsPerCall, &UA_TYPES[UA_TYPES_UINT32]);
|
|
&server->config.maxMonitoredItemsPerCall, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
|
|
|
|
|
+#ifdef UA_ENABLE_HISTORIZING
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - AccessHistoryDataCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_ACCESSHISTORYDATACAPABILITY,
|
|
|
|
+ &server->config.accessHistoryDataCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - MaxReturnDataValues */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_MAXRETURNDATAVALUES,
|
|
|
|
+ &server->config.maxReturnDataValues, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - AccessHistoryEventsCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_ACCESSHISTORYEVENTSCAPABILITY,
|
|
|
|
+ &server->config.accessHistoryEventsCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - MaxReturnEventValues */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_MAXRETURNEVENTVALUES,
|
|
|
|
+ &server->config.maxReturnEventValues, &UA_TYPES[UA_TYPES_UINT32]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - InsertDataCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_INSERTDATACAPABILITY,
|
|
|
|
+ &server->config.insertDataCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - InsertEventCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_INSERTEVENTCAPABILITY,
|
|
|
|
+ &server->config.insertEventCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - InsertAnnotationsCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_INSERTANNOTATIONCAPABILITY,
|
|
|
|
+ &server->config.insertAnnotationsCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - ReplaceDataCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_REPLACEDATACAPABILITY,
|
|
|
|
+ &server->config.replaceDataCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - ReplaceEventCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_REPLACEEVENTCAPABILITY,
|
|
|
|
+ &server->config.replaceEventCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - UpdateDataCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_UPDATEDATACAPABILITY,
|
|
|
|
+ &server->config.updateDataCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - UpdateEventCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_UPDATEEVENTCAPABILITY,
|
|
|
|
+ &server->config.updateEventCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - DeleteRawCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_DELETERAWCAPABILITY,
|
|
|
|
+ &server->config.deleteRawCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - DeleteEventCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_DELETEEVENTCAPABILITY,
|
|
|
|
+ &server->config.deleteEventCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+
|
|
|
|
+ /* ServerCapabilities - HistoryServerCapabilities - DeleteAtTimeDataCapability */
|
|
|
|
+ retVal |= writeNs0Variable(server, UA_NS0ID_HISTORYSERVERCAPABILITIES_DELETEATTIMECAPABILITY,
|
|
|
|
+ &server->config.deleteAtTimeDataCapability, &UA_TYPES[UA_TYPES_BOOLEAN]);
|
|
|
|
+#endif
|
|
|
|
+
|
|
#if defined(UA_ENABLE_METHODCALLS) && defined(UA_ENABLE_SUBSCRIPTIONS)
|
|
#if defined(UA_ENABLE_METHODCALLS) && defined(UA_ENABLE_SUBSCRIPTIONS)
|
|
retVal |= UA_Server_setMethodNode_callback(server,
|
|
retVal |= UA_Server_setMethodNode_callback(server,
|
|
UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_GETMONITOREDITEMS), readMonitoredItems);
|
|
UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_GETMONITOREDITEMS), readMonitoredItems);
|