00001
00002
00003
00004
00012
00013 #pragma once
00014
00015 #include <cstdint>
00016 #include <vector>
00017 #include <string>
00018
00019 #include <opc/ua/protocol/status_codes.h>
00020
00021 namespace OpcUa
00022 {
00023 struct DiagnosticInfo;
00024
00025
00026
00027 enum class OpenFileMode : uint32_t
00028 {
00029 Read = 1,
00030 Write = 2,
00031 EraseExisiting = 4,
00032 Append = 8,
00033 };
00034 inline OpenFileMode operator|(OpenFileMode a, OpenFileMode b) { return static_cast<OpenFileMode>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00035 inline OpenFileMode operator&(OpenFileMode a, OpenFileMode b) { return static_cast<OpenFileMode>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00036
00037
00038
00039 enum class NodeClass : uint32_t
00040 {
00041 Unspecified = 0,
00042 Object = 1,
00043 Variable = 2,
00044 Method = 4,
00045 ObjectType = 8,
00046 VariableType = 16,
00047 ReferenceType = 32,
00048 DataType = 64,
00049 View = 128,
00050 };
00051 inline NodeClass operator|(NodeClass a, NodeClass b) { return static_cast<NodeClass>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00052 inline NodeClass operator&(NodeClass a, NodeClass b) { return static_cast<NodeClass>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00053
00054
00055
00056 enum class ApplicationType : uint32_t
00057 {
00058 Server = 0,
00059 Client = 1,
00060 ClientAndServer = 2,
00061 DiscoveryServer = 3,
00062 };
00063 inline ApplicationType operator|(ApplicationType a, ApplicationType b) { return static_cast<ApplicationType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00064 inline ApplicationType operator&(ApplicationType a, ApplicationType b) { return static_cast<ApplicationType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00065
00066
00067
00068 enum class MessageSecurityMode : uint32_t
00069 {
00070 Invalid = 0,
00071 None = 1,
00072 Sign = 2,
00073 SignAndEncrypt = 3,
00074 };
00075 inline MessageSecurityMode operator|(MessageSecurityMode a, MessageSecurityMode b) { return static_cast<MessageSecurityMode>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00076 inline MessageSecurityMode operator&(MessageSecurityMode a, MessageSecurityMode b) { return static_cast<MessageSecurityMode>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00077
00078
00079
00080 enum class UserTokenType : uint32_t
00081 {
00082 Anonymous = 0,
00083 UserName = 1,
00084 Certificate = 2,
00085 IssuedToken = 3,
00086 };
00087 inline UserTokenType operator|(UserTokenType a, UserTokenType b) { return static_cast<UserTokenType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00088 inline UserTokenType operator&(UserTokenType a, UserTokenType b) { return static_cast<UserTokenType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00089
00090
00091
00092 enum class SecurityTokenRequestType : uint32_t
00093 {
00094 Issue = 0,
00095 Renew = 1,
00096 };
00097 inline SecurityTokenRequestType operator|(SecurityTokenRequestType a, SecurityTokenRequestType b) { return static_cast<SecurityTokenRequestType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00098 inline SecurityTokenRequestType operator&(SecurityTokenRequestType a, SecurityTokenRequestType b) { return static_cast<SecurityTokenRequestType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00099
00100
00101
00102 enum class NodeAttributesMask : uint32_t
00103 {
00104 None = 0,
00105 AccessLevel = 1,
00106 ArrayDimensions = 2,
00107 BrowseName = 4,
00108 ContainsNoLoops = 8,
00109 DataType = 16,
00110 Description = 32,
00111 DisplayName = 64,
00112 EventNotifier = 128,
00113 Executable = 256,
00114 Historizing = 512,
00115 InverseName = 1024,
00116 IsAbstract = 2048,
00117 MinimumSamplingInterval = 4096,
00118 NodeClass = 8192,
00119 NodeId = 16384,
00120 Symmetric = 32768,
00121 UserAccessLevel = 65536,
00122 UserExecutable = 131072,
00123 UserWriteMask = 262144,
00124 ValueRank = 524288,
00125 WriteMask = 1048576,
00126 Value = 2097152,
00127 All = 4194303,
00128 BaseNode = 1335396,
00129 Object = 1335524,
00130 ObjectTypeOrDataType = 1337444,
00131 Variable = 4026999,
00132 VariableType = 3958902,
00133 Method = 1466724,
00134 ReferenceType = 1371236,
00135 View = 1335532,
00136 };
00137 inline NodeAttributesMask operator|(NodeAttributesMask a, NodeAttributesMask b) { return static_cast<NodeAttributesMask>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00138 inline NodeAttributesMask operator&(NodeAttributesMask a, NodeAttributesMask b) { return static_cast<NodeAttributesMask>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00139
00140
00141
00142 enum class AttributeWriteMask : uint32_t
00143 {
00144 None = 0,
00145 AccessLevel = 1,
00146 ArrayDimensions = 2,
00147 BrowseName = 4,
00148 ContainsNoLoops = 8,
00149 DataType = 16,
00150 Description = 32,
00151 DisplayName = 64,
00152 EventNotifier = 128,
00153 Executable = 256,
00154 Historizing = 512,
00155 InverseName = 1024,
00156 IsAbstract = 2048,
00157 MinimumSamplingInterval = 4096,
00158 NodeClass = 8192,
00159 NodeId = 16384,
00160 Symmetric = 32768,
00161 UserAccessLevel = 65536,
00162 UserExecutable = 131072,
00163 UserWriteMask = 262144,
00164 ValueRank = 524288,
00165 WriteMask = 1048576,
00166 ValueForVariableType = 2097152,
00167 };
00168 inline AttributeWriteMask operator|(AttributeWriteMask a, AttributeWriteMask b) { return static_cast<AttributeWriteMask>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00169 inline AttributeWriteMask operator&(AttributeWriteMask a, AttributeWriteMask b) { return static_cast<AttributeWriteMask>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00170
00171
00172
00173 enum class BrowseDirection : uint32_t
00174 {
00175 Forward = 0,
00176 Inverse = 1,
00177 Both = 2,
00178 };
00179 inline BrowseDirection operator|(BrowseDirection a, BrowseDirection b) { return static_cast<BrowseDirection>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00180 inline BrowseDirection operator&(BrowseDirection a, BrowseDirection b) { return static_cast<BrowseDirection>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00181
00182
00183
00184 enum class BrowseResultMask : uint32_t
00185 {
00186 None = 0,
00187 ReferenceTypeId = 1,
00188 IsForward = 2,
00189 NodeClass = 4,
00190 BrowseName = 8,
00191 DisplayName = 16,
00192 TypeDefinition = 32,
00193 All = 63,
00194 ReferenceTypeInfo = 3,
00195 TargetInfo = 60,
00196 };
00197 inline BrowseResultMask operator|(BrowseResultMask a, BrowseResultMask b) { return static_cast<BrowseResultMask>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00198 inline BrowseResultMask operator&(BrowseResultMask a, BrowseResultMask b) { return static_cast<BrowseResultMask>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00199
00200
00201 enum class ComplianceLevel : uint32_t
00202 {
00203 Untested = 0,
00204 Partial = 1,
00205 SelfTested = 2,
00206 Certified = 3,
00207 };
00208 inline ComplianceLevel operator|(ComplianceLevel a, ComplianceLevel b) { return static_cast<ComplianceLevel>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00209 inline ComplianceLevel operator&(ComplianceLevel a, ComplianceLevel b) { return static_cast<ComplianceLevel>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00210
00211
00212 enum class FilterOperator : uint32_t
00213 {
00214 Equals = 0,
00215 IsNull = 1,
00216 GreaterThan = 2,
00217 LessThan = 3,
00218 GreaterThanOrEqual = 4,
00219 LessThanOrEqual = 5,
00220 Like = 6,
00221 Not = 7,
00222 Between = 8,
00223 InList = 9,
00224 And = 10,
00225 Or = 11,
00226 Cast = 12,
00227 InView = 13,
00228 OfType = 14,
00229 RelatedTo = 15,
00230 BitwiseAnd = 16,
00231 BitwiseOr = 17,
00232 };
00233 inline FilterOperator operator|(FilterOperator a, FilterOperator b) { return static_cast<FilterOperator>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00234 inline FilterOperator operator&(FilterOperator a, FilterOperator b) { return static_cast<FilterOperator>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00235
00236
00237 enum class TimestampsToReturn : uint32_t
00238 {
00239 Source = 0,
00240 Server = 1,
00241 Both = 2,
00242 Neither = 3,
00243 };
00244 inline TimestampsToReturn operator|(TimestampsToReturn a, TimestampsToReturn b) { return static_cast<TimestampsToReturn>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00245 inline TimestampsToReturn operator&(TimestampsToReturn a, TimestampsToReturn b) { return static_cast<TimestampsToReturn>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00246
00247
00248 enum class HistoryUpdateType : uint32_t
00249 {
00250 Insert = 1,
00251 Replace = 2,
00252 Update = 3,
00253 Delete = 4,
00254 };
00255 inline HistoryUpdateType operator|(HistoryUpdateType a, HistoryUpdateType b) { return static_cast<HistoryUpdateType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00256 inline HistoryUpdateType operator&(HistoryUpdateType a, HistoryUpdateType b) { return static_cast<HistoryUpdateType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00257
00258
00259 enum class PerformUpdateType : uint32_t
00260 {
00261 Insert = 1,
00262 Replace = 2,
00263 Update = 3,
00264 Remove = 4,
00265 };
00266 inline PerformUpdateType operator|(PerformUpdateType a, PerformUpdateType b) { return static_cast<PerformUpdateType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00267 inline PerformUpdateType operator&(PerformUpdateType a, PerformUpdateType b) { return static_cast<PerformUpdateType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00268
00269
00270 enum class MonitoringMode : uint32_t
00271 {
00272 Disabled = 0,
00273 Sampling = 1,
00274 Reporting = 2,
00275 };
00276 inline MonitoringMode operator|(MonitoringMode a, MonitoringMode b) { return static_cast<MonitoringMode>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00277 inline MonitoringMode operator&(MonitoringMode a, MonitoringMode b) { return static_cast<MonitoringMode>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00278
00279
00280 enum class DataChangeTrigger : uint32_t
00281 {
00282 Status = 0,
00283 StatusValue = 1,
00284 StatusValueTimestamp = 2,
00285 };
00286 inline DataChangeTrigger operator|(DataChangeTrigger a, DataChangeTrigger b) { return static_cast<DataChangeTrigger>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00287 inline DataChangeTrigger operator&(DataChangeTrigger a, DataChangeTrigger b) { return static_cast<DataChangeTrigger>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00288
00289
00290 enum class DeadbandType : uint32_t
00291 {
00292 None = 0,
00293 Absolute = 1,
00294 Percent = 2,
00295 };
00296 inline DeadbandType operator|(DeadbandType a, DeadbandType b) { return static_cast<DeadbandType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00297 inline DeadbandType operator&(DeadbandType a, DeadbandType b) { return static_cast<DeadbandType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00298
00299
00300
00301 enum class EnumeratedTestType : uint32_t
00302 {
00303 Red = 1,
00304 Yellow = 4,
00305 Green = 5,
00306 };
00307 inline EnumeratedTestType operator|(EnumeratedTestType a, EnumeratedTestType b) { return static_cast<EnumeratedTestType>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00308 inline EnumeratedTestType operator&(EnumeratedTestType a, EnumeratedTestType b) { return static_cast<EnumeratedTestType>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00309
00310
00311 enum class RedundancySupport : uint32_t
00312 {
00313 None = 0,
00314 Cold = 1,
00315 Warm = 2,
00316 Hot = 3,
00317 Transparent = 4,
00318 HotAndMirrored = 5,
00319 };
00320 inline RedundancySupport operator|(RedundancySupport a, RedundancySupport b) { return static_cast<RedundancySupport>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00321 inline RedundancySupport operator&(RedundancySupport a, RedundancySupport b) { return static_cast<RedundancySupport>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00322
00323
00324 enum class ServerState : uint32_t
00325 {
00326 Running = 0,
00327 Failed = 1,
00328 NoConfiguration = 2,
00329 Suspended = 3,
00330 Shutdown = 4,
00331 Test = 5,
00332 CommunicationFault = 6,
00333 Unknown = 7,
00334 };
00335 inline ServerState operator|(ServerState a, ServerState b) { return static_cast<ServerState>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00336 inline ServerState operator&(ServerState a, ServerState b) { return static_cast<ServerState>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00337
00338
00339 enum class ModelChangeStructureVerbMask : uint32_t
00340 {
00341 NodeAdded = 1,
00342 NodeDeleted = 2,
00343 ReferenceAdded = 4,
00344 ReferenceDeleted = 8,
00345 DataTypeChanged = 16,
00346 };
00347 inline ModelChangeStructureVerbMask operator|(ModelChangeStructureVerbMask a, ModelChangeStructureVerbMask b) { return static_cast<ModelChangeStructureVerbMask>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00348 inline ModelChangeStructureVerbMask operator&(ModelChangeStructureVerbMask a, ModelChangeStructureVerbMask b) { return static_cast<ModelChangeStructureVerbMask>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00349
00350
00351 enum class AxisScaleEnumeration : uint32_t
00352 {
00353 Linear = 0,
00354 Log = 1,
00355 Ln = 2,
00356 };
00357 inline AxisScaleEnumeration operator|(AxisScaleEnumeration a, AxisScaleEnumeration b) { return static_cast<AxisScaleEnumeration>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00358 inline AxisScaleEnumeration operator&(AxisScaleEnumeration a, AxisScaleEnumeration b) { return static_cast<AxisScaleEnumeration>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00359
00360
00361 enum class ExceptionDeviationFormat : uint32_t
00362 {
00363 AbsoluteValue = 0,
00364 PercentOfRange = 1,
00365 PercentOfValue = 2,
00366 PercentOfEURange = 3,
00367 Unknown = 4,
00368 };
00369 inline ExceptionDeviationFormat operator|(ExceptionDeviationFormat a, ExceptionDeviationFormat b) { return static_cast<ExceptionDeviationFormat>(static_cast<uint32_t>(a) | static_cast<uint32_t>(b)); }
00370 inline ExceptionDeviationFormat operator&(ExceptionDeviationFormat a, ExceptionDeviationFormat b) { return static_cast<ExceptionDeviationFormat>(static_cast<uint32_t>(a) & static_cast<uint32_t>(b)); }
00371
00372 }
00373