|
@@ -180,8 +180,7 @@ addReferenceInternal(UA_Server *server, UA_UInt32 sourceId, UA_UInt32 refTypeId,
|
|
|
static void
|
|
|
addDataTypeNode(UA_Server *server, char* name, UA_UInt32 datatypeid,
|
|
|
UA_Boolean isAbstract, UA_UInt32 parentid) {
|
|
|
- UA_DataTypeAttributes attr;
|
|
|
- UA_DataTypeAttributes_init(&attr);
|
|
|
+ UA_DataTypeAttributes attr = UA_DataTypeAttributes_default;
|
|
|
attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
attr.isAbstract = isAbstract;
|
|
|
UA_Server_addDataTypeNode(server, UA_NODEID_NUMERIC(0, datatypeid),
|
|
@@ -192,8 +191,7 @@ addDataTypeNode(UA_Server *server, char* name, UA_UInt32 datatypeid,
|
|
|
static void
|
|
|
addObjectTypeNode(UA_Server *server, char* name, UA_UInt32 objecttypeid,
|
|
|
UA_Boolean isAbstract, UA_UInt32 parentid) {
|
|
|
- UA_ObjectTypeAttributes attr;
|
|
|
- UA_ObjectTypeAttributes_init(&attr);
|
|
|
+ UA_ObjectTypeAttributes attr = UA_ObjectTypeAttributes_default;
|
|
|
attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
attr.isAbstract = isAbstract;
|
|
|
UA_Server_addObjectTypeNode(server, UA_NODEID_NUMERIC(0, objecttypeid),
|
|
@@ -204,8 +202,7 @@ addObjectTypeNode(UA_Server *server, char* name, UA_UInt32 objecttypeid,
|
|
|
static void
|
|
|
addObjectNode(UA_Server *server, char* name, UA_UInt32 objectid,
|
|
|
UA_UInt32 parentid, UA_UInt32 referenceid, UA_UInt32 type_id) {
|
|
|
- UA_ObjectAttributes object_attr;
|
|
|
- UA_ObjectAttributes_init(&object_attr);
|
|
|
+ UA_ObjectAttributes object_attr = UA_ObjectAttributes_default;
|
|
|
object_attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
UA_Server_addObjectNode(server, UA_NODEID_NUMERIC(0, objectid),
|
|
|
UA_NODEID_NUMERIC(0, parentid),
|
|
@@ -219,8 +216,7 @@ addObjectNode(UA_Server *server, char* name, UA_UInt32 objectid,
|
|
|
static void
|
|
|
addReferenceTypeNode(UA_Server *server, char* name, char *inverseName, UA_UInt32 referencetypeid,
|
|
|
UA_Boolean isabstract, UA_Boolean symmetric, UA_UInt32 parentid) {
|
|
|
- UA_ReferenceTypeAttributes reference_attr;
|
|
|
- UA_ReferenceTypeAttributes_init(&reference_attr);
|
|
|
+ UA_ReferenceTypeAttributes reference_attr = UA_ReferenceTypeAttributes_default;
|
|
|
reference_attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
reference_attr.isAbstract = isabstract;
|
|
|
reference_attr.symmetric = symmetric;
|
|
@@ -235,11 +231,10 @@ static void
|
|
|
addVariableTypeNode(UA_Server *server, char* name, UA_UInt32 variabletypeid,
|
|
|
UA_Boolean isAbstract, UA_Int32 valueRank, UA_UInt32 dataType,
|
|
|
const UA_DataType *type, UA_UInt32 parentid) {
|
|
|
- UA_VariableTypeAttributes attr;
|
|
|
- UA_VariableTypeAttributes_init(&attr);
|
|
|
+ UA_VariableTypeAttributes attr = UA_VariableTypeAttributes_default;
|
|
|
attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
- attr.isAbstract = isAbstract;
|
|
|
attr.dataType = UA_NODEID_NUMERIC(0, dataType);
|
|
|
+ attr.isAbstract = isAbstract;
|
|
|
attr.valueRank = valueRank;
|
|
|
if(type) {
|
|
|
void *val = UA_alloca(type->memSize);
|
|
@@ -255,12 +250,10 @@ static void
|
|
|
addVariableNode(UA_Server *server, UA_UInt32 nodeid, char* name, UA_Int32 valueRank,
|
|
|
const UA_NodeId *dataType, UA_Variant *value, UA_UInt32 parentid,
|
|
|
UA_UInt32 referenceid, UA_UInt32 type_id) {
|
|
|
- UA_VariableAttributes attr;
|
|
|
- UA_VariableAttributes_init(&attr);
|
|
|
+ UA_VariableAttributes attr = UA_VariableAttributes_default;
|
|
|
attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
- attr.dataType = *dataType;
|
|
|
attr.valueRank = valueRank;
|
|
|
- attr.accessLevel = UA_ACCESSLEVELMASK_READ;
|
|
|
+ attr.dataType = *dataType;
|
|
|
if(value)
|
|
|
attr.value = *value;
|
|
|
UA_Server_addVariableNode(server, UA_NODEID_NUMERIC(0, nodeid), UA_NODEID_NUMERIC(0, parentid),
|
|
@@ -272,12 +265,10 @@ static void
|
|
|
addDataSourceVariableNode(UA_Server *server, UA_UInt32 nodeid, char* name, UA_Int32 valueRank,
|
|
|
const UA_NodeId *dataType, UA_DataSource *dataSource, UA_UInt32 parentid,
|
|
|
UA_UInt32 referenceid, UA_UInt32 type_id) {
|
|
|
- UA_VariableAttributes attr;
|
|
|
- UA_VariableAttributes_init(&attr);
|
|
|
+ UA_VariableAttributes attr = UA_VariableAttributes_default;
|
|
|
attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
|
|
|
- attr.dataType = *dataType;
|
|
|
attr.valueRank = valueRank;
|
|
|
- attr.accessLevel = UA_ACCESSLEVELMASK_READ;
|
|
|
+ attr.dataType = *dataType;
|
|
|
UA_Server_addDataSourceVariableNode(server, UA_NODEID_NUMERIC(0, nodeid), UA_NODEID_NUMERIC(0, parentid),
|
|
|
UA_NODEID_NUMERIC(0, referenceid), UA_QUALIFIEDNAME(0, name),
|
|
|
UA_NODEID_NUMERIC(0, type_id), attr, *dataSource, NULL);
|
|
@@ -294,8 +285,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
/*********************************/
|
|
|
|
|
|
/* Bootstrap References and HasSubtype */
|
|
|
- UA_ReferenceTypeAttributes references_attr;
|
|
|
- UA_ReferenceTypeAttributes_init(&references_attr);
|
|
|
+ UA_ReferenceTypeAttributes references_attr = UA_ReferenceTypeAttributes_default;
|
|
|
references_attr.displayName = UA_LOCALIZEDTEXT("en_US", "References");
|
|
|
references_attr.isAbstract = true;
|
|
|
references_attr.symmetric = true;
|
|
@@ -303,8 +293,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
UA_Server_addReferenceTypeNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_REFERENCES),
|
|
|
UA_QUALIFIEDNAME(0, "References"), references_attr, NULL);
|
|
|
|
|
|
- UA_ReferenceTypeAttributes hassubtype_attr;
|
|
|
- UA_ReferenceTypeAttributes_init(&hassubtype_attr);
|
|
|
+ UA_ReferenceTypeAttributes hassubtype_attr = UA_ReferenceTypeAttributes_default;
|
|
|
hassubtype_attr.displayName = UA_LOCALIZEDTEXT("en_US", "HasSubtype");
|
|
|
hassubtype_attr.isAbstract = false;
|
|
|
hassubtype_attr.symmetric = false;
|
|
@@ -368,8 +357,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
/**************/
|
|
|
|
|
|
/* Bootstrap BaseDataType */
|
|
|
- UA_DataTypeAttributes basedatatype_attr;
|
|
|
- UA_DataTypeAttributes_init(&basedatatype_attr);
|
|
|
+ UA_DataTypeAttributes basedatatype_attr = UA_DataTypeAttributes_default;
|
|
|
basedatatype_attr.displayName = UA_LOCALIZEDTEXT("en_US", "BaseDataType");
|
|
|
basedatatype_attr.isAbstract = true;
|
|
|
UA_Server_addDataTypeNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATATYPE),
|
|
@@ -413,8 +401,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
/*****************/
|
|
|
|
|
|
/* Bootstrap BaseVariableType */
|
|
|
- UA_VariableTypeAttributes basevar_attr;
|
|
|
- UA_VariableTypeAttributes_init(&basevar_attr);
|
|
|
+ UA_VariableTypeAttributes basevar_attr = UA_VariableTypeAttributes_default;
|
|
|
basevar_attr.displayName = UA_LOCALIZEDTEXT("en_US", "BaseVariableType");
|
|
|
basevar_attr.isAbstract = true;
|
|
|
basevar_attr.valueRank = -2;
|
|
@@ -441,8 +428,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
/***************/
|
|
|
|
|
|
/* Bootstrap BaseObjectType */
|
|
|
- UA_ObjectTypeAttributes baseobj_attr;
|
|
|
- UA_ObjectTypeAttributes_init(&baseobj_attr);
|
|
|
+ UA_ObjectTypeAttributes baseobj_attr = UA_ObjectTypeAttributes_default;
|
|
|
baseobj_attr.displayName = UA_LOCALIZEDTEXT("en_US", "BaseObjectType");
|
|
|
UA_Server_addObjectTypeNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_BASEOBJECTTYPE),
|
|
|
UA_QUALIFIEDNAME(0, "BaseObjectType"), baseobj_attr, NULL);
|
|
@@ -466,8 +452,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
/* Root and below */
|
|
|
/******************/
|
|
|
|
|
|
- UA_ObjectAttributes root_attr;
|
|
|
- UA_ObjectAttributes_init(&root_attr);
|
|
|
+ UA_ObjectAttributes root_attr = UA_ObjectAttributes_default;
|
|
|
root_attr.displayName = UA_LOCALIZEDTEXT("en_US", "Root");
|
|
|
UA_Server_addObjectNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_ROOTFOLDER),
|
|
|
UA_QUALIFIEDNAME(0, "Root"), root_attr, NULL);
|
|
@@ -524,8 +509,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
resets the variant internally */
|
|
|
|
|
|
/* Begin Server object */
|
|
|
- UA_ObjectAttributes server_attr;
|
|
|
- UA_ObjectAttributes_init(&server_attr);
|
|
|
+ UA_ObjectAttributes server_attr = UA_ObjectAttributes_default;
|
|
|
server_attr.displayName = UA_LOCALIZEDTEXT("en_US", "Server");
|
|
|
UA_Server_addObjectNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER),
|
|
|
UA_QUALIFIEDNAME(0, "Server"), server_attr, NULL);
|
|
@@ -538,8 +522,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
UA_NS0ID_SERVER, UA_NS0ID_HASPROPERTY, UA_NS0ID_PROPERTYTYPE);
|
|
|
|
|
|
/* NamespaceArray */
|
|
|
- UA_VariableAttributes nsarray_attr;
|
|
|
- UA_VariableAttributes_init(&nsarray_attr);
|
|
|
+ UA_VariableAttributes nsarray_attr = UA_VariableAttributes_default;
|
|
|
nsarray_attr.displayName = UA_LOCALIZEDTEXT("en_US", "NamespaceArray");
|
|
|
nsarray_attr.valueRank = 1;
|
|
|
nsarray_attr.minimumSamplingInterval = 50.0;
|
|
@@ -560,8 +543,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
UA_NODEID_NUMERIC(0, UA_NS0ID_PROPERTYTYPE), NULL);
|
|
|
|
|
|
/* Begin ServerCapabilities */
|
|
|
- UA_ObjectAttributes servercap_attr;
|
|
|
- UA_ObjectAttributes_init(&servercap_attr);
|
|
|
+ UA_ObjectAttributes servercap_attr = UA_ObjectAttributes_default;
|
|
|
servercap_attr.displayName = UA_LOCALIZEDTEXT("en_US", "ServerCapabilities");
|
|
|
UA_Server_addObjectNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERCAPABILITIES),
|
|
|
UA_QUALIFIEDNAME(0, "ServerCapabilities"), servercap_attr, NULL);
|
|
@@ -636,8 +618,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
UA_NODEID_NUMERIC(0, UA_NS0ID_SERVERCAPABILITIESTYPE), NULL);
|
|
|
|
|
|
/* Begin ServerDiagnostics */
|
|
|
- UA_ObjectAttributes serverdiag_attr;
|
|
|
- UA_ObjectAttributes_init(&serverdiag_attr);
|
|
|
+ UA_ObjectAttributes serverdiag_attr = UA_ObjectAttributes_default;
|
|
|
serverdiag_attr.displayName = UA_LOCALIZEDTEXT("en_US", "ServerDiagnostics");
|
|
|
UA_Server_addObjectNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERDIAGNOSTICS),
|
|
|
UA_QUALIFIEDNAME(0, "ServerDiagnostics"), serverdiag_attr, NULL);
|
|
@@ -654,11 +635,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
UA_NODEID_NUMERIC(0, UA_NS0ID_HASCOMPONENT),
|
|
|
UA_NODEID_NUMERIC(0, UA_NS0ID_SERVERDIAGNOSTICSTYPE), NULL);
|
|
|
|
|
|
- UA_DataSource statusDS = {
|
|
|
- server, //handle
|
|
|
- readStatus, //read
|
|
|
- NULL //write
|
|
|
- };
|
|
|
+ UA_DataSource statusDS = {server, readStatus, NULL};
|
|
|
addDataSourceVariableNode(server, UA_NS0ID_SERVER_SERVERSTATUS, "ServerStatus", -1,
|
|
|
&UA_TYPES[UA_TYPES_SERVERSTATUSDATATYPE].typeId, &statusDS,
|
|
|
UA_NS0ID_SERVER, UA_NS0ID_HASCOMPONENT, UA_NS0ID_BASEDATAVARIABLETYPE);
|
|
@@ -668,11 +645,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
&UA_TYPES[UA_TYPES_DATETIME].typeId, &var, UA_NS0ID_SERVER_SERVERSTATUS,
|
|
|
UA_NS0ID_HASCOMPONENT, UA_NS0ID_BASEDATAVARIABLETYPE);
|
|
|
|
|
|
- UA_DataSource currentDS = {
|
|
|
- NULL, //handle
|
|
|
- readCurrentTime, //read
|
|
|
- NULL //write
|
|
|
- };
|
|
|
+ UA_DataSource currentDS = {NULL, readCurrentTime, NULL};
|
|
|
addDataSourceVariableNode(server, UA_NS0ID_SERVER_SERVERSTATUS_CURRENTTIME, "CurrentTime", -1,
|
|
|
&UA_TYPES[UA_TYPES_DATETIME].typeId, ¤tDS,
|
|
|
UA_NS0ID_SERVER_SERVERSTATUS, UA_NS0ID_HASCOMPONENT,
|
|
@@ -763,8 +736,7 @@ void UA_Server_createNS0(UA_Server *server) {
|
|
|
|
|
|
#if defined(UA_ENABLE_METHODCALLS) && defined(UA_ENABLE_SUBSCRIPTIONS)
|
|
|
/* Add method node */
|
|
|
- UA_MethodAttributes addmethodattributes;
|
|
|
- UA_MethodAttributes_init(&addmethodattributes);
|
|
|
+ UA_MethodAttributes addmethodattributes = UA_MethodAttributes_default;
|
|
|
addmethodattributes.displayName = UA_LOCALIZEDTEXT("", "GetMonitoredItems");
|
|
|
addmethodattributes.executable = true;
|
|
|
addmethodattributes.userExecutable = true;
|