123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974 |
- /*
- * opcua_advancedDatatypes.h
- *
- * Created on: Jan 13, 2014
- * Author: opcua
- */
- #ifndef OPCUA_ADVANCEDDATATYPES_H_
- #define OPCUA_ADVANCEDDATATYPES_H_
- #include "opcua_builtInDatatypes.h"
- typedef struct AD_RawMessage_t AD_RawMessage;
- struct AD_RawMessage_t
- {
- char *message;
- UInt32 length;
- };
- enum BED_ApplicationType {SERVER_0, CLIENT_1, CLIENTANDSERVER_2, DISCOVERYSERVER_3};
- /**
- * ApplicationDescription
- * Part: 4
- * Chapter: 7.1
- * Page: 103
- */
- struct BED_ApplicationDescription
- {
- UA_String applicationUri;
- UA_String productUri;
- UA_LocalizedText applicationName;
- enum BED_ApplicationType applicationType;
- UA_String gatewayServerUri;
- UA_String discoveryProfileUri;
- UA_String discoverUrls[];
- };
- /**
- * ApplicationInstanceCertificate
- * Part: 4
- * Chapter: 7.2
- * Page: 104
- */
- struct BED_ApplicationInstanceCertificate
- {
- UA_String version;
- UA_ByteString serialNumber;
- UA_String signatureAlgorithm;
- UA_ByteString signature;
- //ToDo struct issuer //????????????? S. 108 table 104
- UA_DateTime validFrom;
- UA_DateTime valdiTo;
- //ToDo struct subject; //????????????? S. 108 table 104
- UA_String applicationUri;
- UA_String *hostnames;
- UA_ByteString pubicKey;
- UA_String keyUsage[];
- };
- /**
- * BrowseResult
- * Part: 4
- * Chapter: 7.3
- * Page: 104
- */
- struct BED_BrowseResult
- {
- UA_StatusCode statusCode;
- // struct BED_ContinuationPoint continuationPoint;
- // struct BED_ReferenceDescription references[];
- };
- /**
- * ContentFilter //ToDo
- * Part: 4
- * Chapter: 7.4.1
- * Page: 104
- */
- struct BED_ContentFilter
- {
- //ToDo struct BED_ContentFilterElement elements[]; //ToDo
- //ToDo enum BED_FilterOperand filterOperator; //ToDo table 110
- //ToDo struct BED_ExtensibleParamterFilterOperand filterOperands[]; //ToDo 7.4.4
- };
- /**
- * Counter
- * Part: 4
- * Chapter: 7.5
- * Page: 113
- */
- typedef UInt32 BED_Counter;
- /**
- * ContinuationPoint //ToDo
- * Part: 4
- * Chapter: 7.6
- * Page: 114
- */
- struct BED_ContinuationPoint
- {
- };
- /**
- * DataValue
- * Part: 4
- * Chapter: 7.7.1
- * Page: 114
- */
- struct BED_DataValue
- {
- UA_Variant value; // BaseDataType are mapped to a UA_Variant -> part: 6 chapter: 5.1.5 page: 14
- UA_StatusCode statusCode;
- UA_DateTime sourceTimestamp;
- //ToDo UInt //toBeDiscussed: Resolution of PicoSeconds
- UA_DateTime serverTimestamp;
- //ToDo UInt //toBeDiscussed: Resolution of PicoSeconds
- };
- /**
- * DiagnosticInfo
- * Part: 4
- * Chapter: 7.9*/
- struct BED_DiagnosticInfo
- {
- //ToDo struct ???? identifier; //ToDo: what kind of strcuture?
- Int32 namespaceUri;
- Int32 symbolicId;
- Int32 locale;
- Int32 localizesText;
- UA_String additionalInfo;
- UA_StatusCode innerStatusCode;
- struct BED_DiagnosticInfo *innerDiagnosticInfo;
- };
- /**
- * EndpointDescription
- * Part: 4
- * Chapter: 7.9
- * Page: 116
- */
- struct BED_EndpointDescription
- {
- UA_String endpointUrl;
- struct BED_ApplicationDescription server;
- struct BED_ApplicationInstanceCertificate serverCertificate;
- // enum BED_MessageSecurityMode securityMode;
- UA_String securityPolicyUri;
- // struct BED_UserTokenPolicy useridentyTokens[];
- UA_String transportProfileUri;
- Byte securtiyLevel;
- };
- /**
- * ExpandedNodeId
- * Part: 4
- * Chapter: 7.10
- * Page: 117
- */
- struct BED_ExpandedNodeId
- {
- // BED_Index serverIndex;
- UA_String namespaceUri;
- // BED_Index namespaveIndex;
- //ToDo enum BED_IdentifierType identiferType; //ToDo: Is the enumeration correct?
- //ToDo UA_NodeIdentifier identifier; //ToDo -> Part 3: Address Space Model
- };
- /**
- * ExtensibleParameter
- * Part: 4
- * Chapter: 7.11
- * Page: 117
- */
- struct BED_ExtensibleParameter
- {
- // struct UA_NodeId parameterTypeId;
- //ToDo -- parameterData; //toBeDiscussed
- };
- /**
- * Index
- * Part: 4
- * Chapter: 7.12
- * Page: 118
- */
- typedef UInt32 BED_Index;
- /**
- * IntegerId
- * Part: 4
- * Chapter: 7.13
- * Page: 118
- */
- typedef UInt32 BED_IntegerId;
- /**
- * MessageSecurityMode
- * Part: 4
- * Chapter: 7.14
- * Page: 118
- */
- enum BED_MessageSecurityMode
- {
- INVALID_0 = 0,
- SIGN_1 = 1,
- SIGNANDENCRYPT_2 = 2
- };
- /**
- * MonitoringParameters
- * Part: 4
- * Chapter: 7.15
- * Page: 118
- */
- struct BED_MonitoringParameters
- {
- BED_IntegerId clientHandle;
- //ToDo Duration???? samplingInterval; //ToDo
- //ToDo struct BED_ExtensibleParameterMonitoringFilter filter //ToDo
- BED_Counter queueSize;
- Boolean discardOldest;
- };
- //->ExtensibleParameter ->Part:4 Chapter:7.11 Page:117
- struct BED_ExtensibleParameterMonitoringFilter //ToDo: Ist die Umsetzung des ExtensibleParameter korrekt?
- {
- // enum BED_MonitoringFilter parameterTypeId;
- // struct BED_DataChangeFilter dataChangeFilter;
- // struct BED_EventFilter eventFilter;
- // struct BED_AggregateFilter aggregateFilter;
- };
- /**
- * MonitoringFilter parameterTypeIds
- * Part: 4
- * Chapter: 7.16.1
- * Page: 119
- */
- enum BED_MonitoringFilter
- {
- DATA_CHANGE_FILTER = 1,
- EVENT_FILTER = 2,
- AGGREGATE_FILTER = 3
- };
- /**
- * DataChangeFilter
- * Part: 4
- * Chapter: 7.16.2
- * Page: 119
- */
- struct BED_DataChangeFilter
- {
- //ToDo enum BED_MonitoringFilter trigger = BED_MonitoringFilter.DATA_CHANGE_FILTER;
- UInt32 deadbandType;
- Double deadbandValue;
- };
- /**
- * EventFilter
- * Part: 4
- * Chapter: 7.16.3
- * Page: 120
- */
- struct BED_EventFilter
- {
- //ToDo SimpleAttributeOperantd selectClauses[]; //ToDo
- //ToDo ContenFilter whereClause; //ToDo
- };
- struct BED_EventFilterResult
- {
- UA_StatusCode selectClauseResults[3];
- // struct UA_DiagnosticInfo selectClauseDiagnosticInfos[3];
- // struct BED_ContentFilterResult whereClauseResult;
- };
- /**
- * AggregateFilter
- * Part: 4
- * Chapter: 7.16.4
- * Page: 122
- */
- struct BED_AggregateFilter
- {
- UA_DateTime startTime;
- // struct UA_NodeId aggregateType;
- UA_Duration processingInterval;
- //ToDo AggregateConfiguration aggregateConfiguration; //ToDo
- Boolean useServerCapabilitiesDafaults;
- Boolean treatUncertainAsBad;
- Byte percentDataBad;
- Byte percentDataGood;
- Boolean steppedSlopedExtrapolation;
- };
- struct BED_AggregateFilterResult
- {
- UA_DateTime revisedStartTime;
- UA_Duration revisedProcessingInterval;
- };
- /**
- * MonitoringMode
- * Part: 4
- * Chapter: 7.17
- * Page: 123
- */
- enum BED_MonitoringModeValues
- {
- DISABLED_0 = 0, //The item being monitored is not sampled or evaluated, and Notifications are not generated or queued. Notification reporting is disabled.
- SAMPLING_1 = 1, //The item being monitored is sampled and evaluated, and Notifications are generated and queued. Notification reporting is disabled.
- REPORTING_2 = 2 //The item being monitored is sampled and evaluated, and Notifications are generated and queued. Notification reporting is enabled.
- };
- /**
- * NodeAttributes parameters
- * Part: 4
- * Chapter: 7.18.1
- * Page: 124
- */
- enum BED_NodeAttributesParamterTypeIds
- {
- ObjectAttributes, //Defines the Attributes for the Object NodeClass.
- VariableAttributes, //Defines the Attributes for the Variable NodeClass.
- MethodAttributes, //Defines the Attributes for the Method NodeClass.
- ObjectTypeAttributes, //Defines the Attributes for the ObjectType NodeClass.
- VariableTypeAttributes, //Defines the Attributes for the VariableType NodeClass.
- ReferenceTypeAttributes,//Defines the Attributes for the ReferenceType NodeClass.
- DataTypeAttributes, //Defines the Attributes for the DataType NodeClass.
- ViewAttributes //Defines the Attributes for the View NodeClass.
- };
- enum BED_NodeAttributesBitMask
- {
- AccessLevel = 1, //Bit: 0 Indicates if the AccessLevel Attribute is set.
- ArrayDimensions = 2, //Bit: 1 Indicates if the ArrayDimensions Attribute is set.
- //Reserved = 4, //Bit: 2 Reserved to be consistent with WriteMask defined in IEC 62541-3.
- ContainsNoLoops = 8, //Bit: 3 Indicates if the ContainsNoLoops Attribute is set.
- DataType = 16, //Bit: 4 Indicates if the DataType Attribute is set.
- Description = 32, //Bit: 5 Indicates if the Description Attribute is set.
- DisplayName = 64, //Bit: 6 Indicates if the DisplayName Attribute is set.
- EventNotifier = 128, //Bit: 7 Indicates if the EventNotifier Attribute is set.
- Executable = 256, //Bit: 8 Indicates if the Executable Attribute is set.
- Historizing = 512, //Bit: 9 Indicates if the Historizing Attribute is set.
- InverseName = 1024, //Bit:10 Indicates if the InverseName Attribute is set.
- IsAbstract = 2048, //Bit:11 Indicates if the IsAbstract Attribute is set.
- MinimumSamplingInterval = 4096, //Bit:12 Indicates if the MinimumSamplingInterval Attribute is set.
- //Reserved = 8192, //Bit:13 Reserved to be consistent with WriteMask defined in IEC 62541-3.
- //Reserved = 16384, //Bit:14 Reserved to be consistent with WriteMask defined in IEC 62541-3.
- Symmetric = 32768, //Bit:15 Indicates if the Symmetric Attribute is set.
- UserAccessLevel = 65536,//Bit:16 Indicates if the UserAccessLevel Attribute is set.
- UserExecutable = 131072,//Bit:17 Indicates if the UserExecutable Attribute is set.
- UserWriteMask = 262144, //Bit:18 Indicates if the UserWriteMask Attribute is set.
- ValueRank = 524288, //Bit:19 Indicates if the ValueRank Attribute is set.
- WriteMask = 1048576, //Bit:20 Indicates if the WriteMask Attribute is set.
- Value = 2097152 //Bit:21 Indicates if the Value Attribute is set.
- //Reserved //Bit:22:32 Reserved for future use. Shall always be zero.
- };
- /**
- * ObjectAttributes parameters
- * Part: 4
- * Chapter: 7.18.2
- * Page: 125
- */
- struct BED_ObjectAttributes
- {
- UInt32 specifiedAttribute; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- Byte eventNotifier;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * VariableAttributes parameters
- * Part: 4
- * Chapter: 7.18.3
- * Page: 125
- */
- struct BED_VariableAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- //ToDo DefinedByTheDataTypeAttribte??? value //ToDo
- // struct UA_NodeId dataType;
- Int32 valueRank;
- // UInt32 arrayDimensions[];
- Byte accessLevel;
- Byte userAccesLevel;
- //ToDo Duration???? minimumSamplingInterval; //ToDo
- Boolean historizing;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * MethodAttributes parameters
- * Part: 4
- * Chapter: 7.18.4
- * Page: 125
- */
- struct BED_MethodAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- Boolean executable;
- Boolean userExecutable;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * ObjectTypeAttributes parameters
- * Part: 4
- * Chapter: 7.18.5
- * Page: 125
- */
- struct BED_ObjectTypeAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- Boolean isAbstract;
- UInt32 wirteMask;
- UInt32 userWriteMask;
- };
- /**
- * VariableTypeAttributes parameters
- * Part: 4
- * Chapter: 7.18.6
- * Page: 126
- */
- struct BED_VariableTypeAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- //ToDo DefinedByTheDataTypeAttribte??? value //ToDo
- // struct UA_NodeId dataType;
- Int32 valueRank;
- // UInt32 arrayDimesions[];
- Boolean isAbstract;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * ReferenceTypeAttributes parameters
- * Part: 4
- * Chapter: 7.18.7
- * Page: 126
- */
- struct BED_ReferenceTypeAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- Boolean isAbstract;
- Boolean symmetric;
- // struct UA_LocalizedText inverseName;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * DataTypeAttributes parameters
- * Part: 4
- * Chapter: 7.18.8
- * Page: 126
- */
- struct BED_DataTypeAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- Boolean isAbstract;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * ViewAttributes parameters
- * Part: 4
- * Chapter: 7.18.9
- * Page: 127
- */
- struct BED_ViewAttributes
- {
- UInt32 specifiedAttributes; //BitMask corresponding to BED_NodeAttributesBitMask
- // struct UA_LocalizedText displayName;
- // struct UA_LocalizedText description;
- Boolean containsNoLoops;
- Byte eventNotifier;
- UInt32 writeMask;
- UInt32 userWriteMask;
- };
- /**
- * NotificationData parameters
- * Part: 4
- * Chapter: 7.19
- * Page: 127
- */
- enum BED_NotificationDataParameterTypeIds
- {
- DATA_CHANGE = 1,
- EVENT = 2,
- STATUS_CHANGE = 3
- };
- /**
- * DataChangeNotification parameter
- * Part: 4
- * Chapter: 7.19.2
- * Page: 127
- */
- struct BED_DataChangeNotification
- {
- //ToDo struct BED_MonitoredItemNotification monitoredItems[]; //ToDo
- BED_IntegerId clientHandle;
- // struct UA_DataValue value;
- UA_DiagnosticInfo diagnositcInfos[];
- };
- /**
- * EventNotificationList parameter
- * Part: 4
- * Chapter: 7.19.3
- * Page: 128
- */
- struct BED_EventNotificationList
- {
- //ToDo struct EventFieldList events[]; //ToDo
- BED_IntegerId clientHandle;
- UA_Variant eventFields[]; // BaseDataType are mapped to a UA_Variant -> part: 6 chapter: 5.1.5 page: 14
- };
- /**
- * StatusChangeNotification parameter
- * Part: 4
- * Chapter: 7.19.4
- * Page: 128
- */
- struct BED_StatusChangeNotification
- {
- UA_StatusCode status;
- // struct UA_DiagnosticInfo diagnosticInfo;
- };
- /**
- * NotificationMessage
- * Part: 4
- * Chapter: 7.20
- * Page: 129
- */
- struct BED_NotificationMessage
- {
- BED_Counter sequenceNumber;
- // struct UA_DateTime publishTime;
- // struct ExtensibleParameterNotificationData notificationData[];
- };
- //->ExtensibleParameter ->Part:4 Chapter:7.11 Page:117
- struct ExtensibleParameterNotificationData //ToDo: Ist die Umsetzung des ExtensibleParameter korrekt?
- {
- enum BED_NotificationDataParameterTypeIds parameterTypeId;
- struct BED_DataChangeNotification dataChange;
- struct BED_EventNotificationList event;
- struct BED_StatusChangeNotification statusChange;
- };
- /**
- * NumericRange
- * Part: 4
- * Chapter: 7.21
- * Page: 129
- */
- typedef UA_String NumericRange;
- /**
- * QueryDataSet
- * Part: 4
- * Chapter: 7.22
- * Page: 130
- */
- /*
- struct BED_QueryDataSet
- {
- // struct UA_ExpandedNodeId nodeId;
- // struct UA_ExpandedNodeId typeDefinitionNode;
- // struct UA_Variant values[]; // BaseDataType are mapped to a UA_Variant -> part: 6 chapter: 5.1.5 page: 14
- };
- */
- /**
- * ReadValueId
- * Part: 4
- * Chapter: 7.23
- * Page: 130
- */
- struct BED_QueryDataSet
- {
- // struct UA_NodeId nodeId;
- BED_IntegerId attributeId;
- // struct BED_NumericRange indexRange;
- // struct UA_QualifiedName dataEncoding;
- };
- /**
- * ReferenceDescription
- * Part: 4
- * Chapter: 7.24
- * Page: 131
- */
- struct BED_ReferenceDescription
- {
- // struct UA_NodeId referenceTypeId;
- Boolean isForward;
- // struct UA_ExpandedNodeId nodeId;
- // struct UA_QualifiedName browseName;
- // struct UA_LocalizedText displayName;
- //ToDo struct BED_NodeClass nodeClass; //ToDo
- // struct UA_ExpandedNodeId typeDefinition;
- };
- /**
- * RelativePath
- * Part: 4
- * Chapter: 7.25
- * Page: 131
- */
- struct BED_RelativePath
- {
- //ToDo struct BED_RelativePathElement elements[]; //ToDo
- // struct UA_NodeId referenceTypeId;
- Boolean isInverse;
- Boolean includeSubtypes;
- // struct UA_QualifiedName targetName;
- };
- /**
- * RequestHeader
- * Part: 4
- * Chapter: 7.26
- * Page: 132
- */
- struct BED_RequestHeader
- {
- UA_NodeId authenticationToken; //ToDo
- UA_DateTime timestamp;
- BED_IntegerId requestHandle;
- UInt32 returnDiagnostics;
- UA_String auditEntryId;
- UInt32 timeoutHint;
- UA_ExtensionObject additionalHeader;
- };
- enum BED_RequestReturnDiagnositcs
- {
- SERVICE_LEVEL_SYMBOLIC_ID = 1, //Hex 0x01
- SERVICE_LEVEL_LOCALIZED_TEXT= 2, //Hex 0x02
- SERVICE_LEVEL_ADDITIONAL_INFO = 4, //Hex 0x04
- SERVICE_LEVEL_INNER_STATUS_CODE = 8, //Hex 0x08
- SERVICE_LEVEL_INNER_DIAGNOSTICS = 16, //Hex 0x10
- OPERATION_LEVEL_SYMBOLIC_ID = 32, //Hex 0x20
- OPERATION_LEVEL_LOCALIZED_TEXT= 64, //Hex 0x40
- OPERATION_LEVEL_ADDITIONAL_INFO = 128, //Hex 0x80
- OPERATION_LEVEL_INNER_STATUS_CODE = 256, //Hex 0x100
- OPERATION_LEVEL_INNER_DIAGNOSTICS = 512 //Hex 0x200
- };
- /**
- * ResponseHeader
- * Part: 4
- * Chapter: 7.27
- * Page: 133
- */
- /*typedef struct UA_AD_ResponseHeader
- {
- UA_DateTime timestamp;
- UInt32 requestHandle;
- UA_StatusCode serviceResult;
- UA_DiagnosticInfo *serviceDiagnostics;
- UA_String *stringTable;
- UA_AD_ExtensibleParameter *additionalHeader;
- }UA_AD_ResponseHeader;
- */
- /**
- * ServiceFault
- * Part: 4
- * Chapter: 7.28
- * Page: 133
- */
- /*struct BED_ServiceFault
- {
- struct BED_ResponseHeader responseHeader;
- };
- */
- //ToDo: Own DataType with typeDef?
- /**
- * SessionAuthenticationToken
- * Part: 4
- * Chapter: 7.29
- * Page: 133
- */
- /**
- * SignatureData
- * Part: 4
- * Chapter: 7.30
- * Page: 135
- */
- struct BED_SignatureData
- {
- UA_ByteString signature;
- UA_String agorithm;
- };
- /**
- * SignedSoftwareCertificate
- * Part: 4
- * Chapter: 7.31
- * Page: 135
- */
- struct BED_SignedSoftwareCertificate
- {
- UA_String version;
- UA_ByteString serialNumber;
- UA_String signatureAlgorithm;
- UA_ByteString signature;
- //ToDo struct issuer //ToDo: ??? struct?
- UA_DateTime validFrom;
- UA_DateTime validTo;
- //ToDo struct subject; //ToDo: ??? struct?
- //ToDo struct subjectAltName[]; //ToDo: ??? struct?
- UA_ByteString publicKey;
- // UA_String keyUsage[];
- UA_ByteString softwareCertificate;
- };
- /**
- * SoftwareCertificate
- * Part: 4
- * Chapter: 7.32
- * Page: 135
- */
- struct BED_SoftwareCertificate
- {
- UA_String productName;
- UA_String productUri;
- UA_String vendorName;
- UA_ByteString vendorProductCertificate;
- UA_String softwareVersion;
- UA_String buildNumber;
- UA_DateTime buildDate;
- UA_String issuedBy;
- UA_DateTime issueDate;
- // UA_ByteString vendorProductCertificate;
- // struct BED_SupportedProfiles supportedProfiles;
- };
- struct BED_SupportedProfiles
- {
- UA_String oranizationUri;
- UA_String profileId;
- UA_String complianceTool;
- UA_DateTime complianceDate;
- // enum BED_ComplianceLevel complianceLevel;
- UA_String unsupportedUnitIds[];
- };
- enum BED_ComplianceLevel
- {
- UNTESTED_0 = 0, //the profiled capability has not been tested successfully.
- PARTIAL_1 = 1, //the profiled capability has been partially tested and has
- //passed critical tests, as defined by the certifying authority.
- SELFTESTED_2 = 2, //the profiled capability has been successfully tested using a
- //self-test system authorized by the certifying authority.
- CERTIFIED_3 = 3 //the profiled capability has been successfully tested by a
- //testing organisation authorized by the certifying authority.
- };
- /**
- * StatusCode //ToDo: Do we need them? How do we implement them (enum)?
- * Part: 4
- * Chapter: 7.33
- * Page: 136
- */
- /**
- * TimestampsToReturn
- * Part: 4
- * Chapter: 7.34
- * Page: 140
- */
- enum BED_TimestampsToReturn
- {
- SOURCE_0 = 1, //Return the source timestamp.
- //If used in HistoryRead the source timestamp is used to determine which historical data values are returned.
- SERVER_1 = 1, //Return the Server timestamp.
- //If used in HistoryRead the Server timestamp is used to determine which historical data values are returned.
- BOTH_2 = 2, //Return both the source and Server timestamps.
- //If used in HistoryRead the source timestamp is used to determine which historical data values are returned.
- NEITHER_3 = 3 //Return neither timestamp.
- //This is the default value for MonitoredItems if a Variable value is not being accessed.
- //For HistoryRead this is not a valid setting.
- };
- /**
- * UserIdentityToken Encrypted Token Format
- * Part: 4
- * Chapter: 7.35.1
- * Page: 140
- */
- struct BED_UserIdentityTokenEncryptedTokenFormat
- {
- Byte length[4];
- // Byte tokenData[];
- // Byte serverNonce[];
- };
- /**
- * AnonymousIdentityToken
- * Part: 4
- * Chapter: 7.35.2
- * Page: 141
- */
- struct BED_AnonymousIdentityToken
- {
- UA_String policyId;
- };
- /**
- * UserNameIdentityToken
- * Part: 4
- * Chapter: 7.35.3
- * Page: 141
- */
- struct BED_UserNameIdentityToken
- {
- UA_String policyId;
- UA_String userName;
- UA_ByteString password;
- UA_String encryptionAlogrithm;
- };
- /**
- * X509IdentityTokens
- * Part: 4
- * Chapter: 7.35.4
- * Page: 141
- */
- struct BED_X509IdentityTokens
- {
- UA_String policyId;
- UA_ByteString certificateData;
- };
- /**
- * IssuedIdentityToken
- * Part: 4
- * Chapter: 7.35.5
- * Page: 142
- */
- struct BED_IssuedIdentityToken
- {
- UA_String policyId;
- UA_ByteString tokenData;
- UA_String encryptionAlgorithm;
- };
- enum BED_UserIdentityTokenType
- {
- ANONYMOUS_0 = 0,
- USERNAME_1 = 1,
- CERTIFICATE_2 = 2,
- ISSUEDTOKEN_3 = 3
- };
- /**
- * UserTokenPolicy
- * Part: 4
- * Chapter: 7.36
- * Page: 142
- */
- struct BED_UserTokenPolicy
- {
- UA_String policyId;
- enum BED_UserIdentityTokenType tokenType;
- UA_String issuedTokenType;
- UA_String issuerEndpointUrl;
- UA_String securityPolicyUri;
- };
- /**
- * ViewDescription
- * Part: 4
- * Chapter: 7.37
- * Page: 143
- */
- struct BED_ViewDescription
- {
- // struct UA_NodeId viewId;
- UA_DateTime timestamp;
- UInt32 viewVersion;
- };
- #endif /* OPCUA_ADVANCEDDATATYPES_H_ */
|