00001 #ifndef UA_NODES_H_ 00002 #define UA_NODES_H_ 00003 00004 #include "ua_server.h" 00005 #include "ua_types_generated.h" 00006 #include "ua_types_encoding_binary.h" 00007 00008 #define UA_STANDARD_NODEMEMBERS \ 00009 UA_NodeId nodeId; \ 00010 UA_NodeClass nodeClass; \ 00011 UA_QualifiedName browseName; \ 00012 UA_LocalizedText displayName; \ 00013 UA_LocalizedText description; \ 00014 UA_UInt32 writeMask; \ 00015 UA_UInt32 userWriteMask; \ 00016 UA_Int32 referencesSize; \ 00017 UA_ReferenceNode *references; 00018 00019 typedef struct { 00020 UA_STANDARD_NODEMEMBERS 00021 } UA_Node; 00022 00023 typedef struct { 00024 UA_STANDARD_NODEMEMBERS 00025 UA_Byte eventNotifier; 00026 } UA_ObjectNode; 00027 UA_TYPE_HANDLING_FUNCTIONS(UA_ObjectNode) 00028 00029 typedef struct { 00030 UA_STANDARD_NODEMEMBERS 00031 UA_Boolean isAbstract; 00032 } UA_ObjectTypeNode; 00033 UA_TYPE_HANDLING_FUNCTIONS(UA_ObjectTypeNode) 00034 00035 typedef enum { 00036 UA_VALUESOURCE_VARIANT, 00037 UA_VALUESOURCE_DATASOURCE 00038 } UA_ValueSource; 00039 00040 typedef struct { 00041 UA_STANDARD_NODEMEMBERS 00042 UA_Int32 valueRank; 00047 UA_ValueSource valueSource; 00048 union { 00049 UA_Variant variant; 00050 UA_DataSource dataSource; 00051 } value; 00052 /* <--- similar to variabletypenodes up to there--->*/ 00053 UA_Byte accessLevel; 00054 UA_Byte userAccessLevel; 00055 UA_Double minimumSamplingInterval; 00056 UA_Boolean historizing; 00057 } UA_VariableNode; 00058 UA_TYPE_HANDLING_FUNCTIONS(UA_VariableNode) 00060 UA_StatusCode UA_VariableNode_copyWithoutRefsAndVariable(const UA_VariableNode *src, UA_VariableNode *dst); 00061 00062 typedef struct { 00063 UA_STANDARD_NODEMEMBERS 00064 UA_Int32 valueRank; 00065 UA_ValueSource valueSource; 00066 union { 00067 UA_Variant variant; 00068 UA_DataSource dataSource; 00069 } value; 00070 /* <--- similar to variablenodes up to there--->*/ 00071 UA_Boolean isAbstract; 00072 } UA_VariableTypeNode; 00073 UA_TYPE_HANDLING_FUNCTIONS(UA_VariableTypeNode) 00074 00075 typedef struct { 00076 UA_STANDARD_NODEMEMBERS 00077 UA_Boolean isAbstract; 00078 UA_Boolean symmetric; 00079 UA_LocalizedText inverseName; 00080 } UA_ReferenceTypeNode; 00081 UA_TYPE_HANDLING_FUNCTIONS(UA_ReferenceTypeNode) 00082 00083 typedef struct { 00084 UA_STANDARD_NODEMEMBERS 00085 UA_Boolean executable; 00086 UA_Boolean userExecutable; 00087 } UA_MethodNode; 00088 UA_TYPE_HANDLING_FUNCTIONS(UA_MethodNode) 00089 00090 typedef struct { 00091 UA_STANDARD_NODEMEMBERS 00092 UA_Boolean containsNoLoops; 00093 UA_Byte eventNotifier; 00094 } UA_ViewNode; 00095 UA_TYPE_HANDLING_FUNCTIONS(UA_ViewNode) 00096 00097 typedef struct { 00098 UA_STANDARD_NODEMEMBERS 00099 UA_Boolean isAbstract; 00100 } UA_DataTypeNode; 00101 UA_TYPE_HANDLING_FUNCTIONS(UA_DataTypeNode) 00102 00103 #endif /* UA_NODES_H_ */