System types

 

SpxBoolean = Boolean;

SpxSByte = ShortInt;

SpxByte = Byte;

SpxInt16 = SmallInt;

SpxUInt16 = Word;

SpxInt32 = Integer;

SpxUInt32 = Cardinal;

SpxInt64 = Int64;

SpxUInt64 = UInt64;

SpxFloat = Single;

SpxDouble = Double;

SpxString = String;

SpxDateTime = TDateTime;

SpxGuid = TGUID;

SpxUInt = Cardinal;

SpxInt = Integer;

SpxStatusCode = SpxUInt32;

 

Arrays of system types

 

SpxBooleanArray = array of SpxBoolean;

SpxSByteArray = array of SpxSByte;

SpxByteArray = array of SpxByte;

SpxInt16Array = array of SpxInt16;

SpxUInt16Array = array of SpxUInt16;

SpxInt32Array = array of SpxInt32;

SpxUInt32Array = array of SpxUInt32;

SpxInt64Array = array of SpxInt64;

SpxUInt64Array = array of SpxUInt64;

SpxFloatArray = array of SpxFloat;

SpxDoubleArray = array of SpxDouble;

SpxStringArray = array of SpxString;

SpxDateTimeArray = array of SpxDateTime;

SpxGuidArray = array of SpxGuid;

SpxByteArrayArray = array of SpxByteArray;

SpxStatusCodeArray = array of SpxStatusCode;

 

Node identifier type

 

SpxNodeIdIdentifierType = (

     SpxIdentifierType_Numeric = $00,

     SpxIdentifierType_String = $01,

     SpxIdentifierType_Guid = $02,

     SpxIdentifierType_Opaque = $03

);

 

Node identifier

 

SpxNodeId = record

     NamespaceIndex: SpxUInt16;

     IdentifierType: SpxNodeIdIdentifierType;

     IdentifierNumeric: SpxUInt32;

     IdentifierString: SpxString;

     IdentifierGuid: SpxGuid;

     IdentifierBytes: SpxByteArray;

end;

 

Array of node identifiers

 

SpxNodeIds = array of SpxNodeId;

 

Built-in types

 

SpxBuiltInType = (

     SpxType_Null = 0,

     SpxType_Boolean = 1,

     SpxType_SByte = 2,

     SpxType_Byte = 3,

     SpxType_Int16 = 4,

     SpxType_UInt16 = 5,

     SpxType_Int32 = 6,

     SpxType_UInt32 = 7,

     SpxType_Int64 = 8,

     SpxType_UInt64 = 9,

     SpxType_Float = 10,

     SpxType_Double = 11,

     SpxType_String = 12,

     SpxType_DateTime = 13,

     SpxType_Guid = 14,

     SpxType_ByteString = 15,

     SpxType_XmlElement = 16,

     SpxType_NodeId = 17,

     SpxType_ExpandedNodeId = 18,

     SpxType_StatusCode = 19,

     SpxType_QualifiedName = 20,

     SpxType_LocalizedText = 21,

     SpxType_ExtensionObject = 22,

     SpxType_DataValue = 23,

     SpxType_Variant = 24,

     SpxType_DiagnosticInfo = 25,

     SpxType_Number = 26,

     SpxType_Integer = 27,

     SpxType_UInteger = 28,

     SpxType_Enumeration = 29

);

 

Value rank

 

SpxValueRank = (

     SpxValueRanks_Scalar = -1,

     SpxValueRanks_OneDimension = 1

);

 

Data type

 

SpxDataType = record

     // value rank

     ValueRank: SpxValueRank;

 

     // built-in type

     BuiltInType: SpxBuiltInType;

 

     // enumeration type identifier

     EnumTypeNodeId: SpxNodeId;

end;

 

Localized Text

 

SpxLocalizedText = record

     // locale

     Locale: SpxString;

 

     // text

     Text: SpxString;

end;

 

Array of localized text

 

SpxLocalizedTextArray = array of SpxLocalizedText;

 

Qualified Name

 

SpxQualifiedName = record

     // namespace index

     NamespaceIndex: SpxUInt16;

 

     // name

     Name: SpxString;

end;

 

Array of qualified names

 

SpxQualifiedNameArray = array of SpxQualifiedName;

 

Trace level

 

SpxTraceLevel = (

     tlNone,

     tlError,

     tlWarning,

     tlSystem,

     tlInfo,

     tlDebug,

     tlAll

);

 

Value

 

SpxVariant = record

     // value rank

     ValueRank: SpxValueRank;

     // built-in type

     BuiltInType: SpxBuiltInType;

 

     // boolean value

     AsBoolean: SpxBoolean;

     // array of boolean values

     AsBooleanArray: SpxBooleanArray;

 

     // sbyte value

     AsSByte: SpxSByte;

     // array of sbyte values

     AsSByteArray: SpxSByteArray;

 

     // byte value

     AsByte: SpxByte;

     // array of byte values

     AsByteArray: SpxByteArray;

 

     // int16 value

     AsInt16: SpxInt16;

     // array of int16 values

     AsInt16Array: SpxInt16Array;

 

     // uint16 value

     AsUInt16: SpxUInt16;

     // array of uint16 values

     AsUInt16Array: SpxUInt16Array;

 

     // int32 value

     AsInt32: SpxInt32;

     // array of int32 values

     AsInt32Array: SpxInt32Array;

 

     // uint32 value

     AsUInt32: SpxUInt32;

     // array of uint32 value

     AsUInt32Array: SpxUInt32Array;

 

     // int64 value

     AsInt64: SpxInt64;

     // array of int64 values

     AsInt64Array: SpxInt64Array;

 

     // uint64 value

     AsUInt64: SpxUInt64;

     // array of uint64 values

     AsUInt64Array: SpxUInt64Array;

 

     // float value

     AsFloat: SpxFloat;

     // array of float values

     AsFloatArray: SpxFloatArray;

 

     // double value

     AsDouble: SpxDouble;

     // array of double values

     AsDoubleArray: SpxDoubleArray;

 

     // string value

     AsString: SpxString;

     // array of string values

     AsStringArray: SpxStringArray;

 

     // date time value

     AsDateTime: SpxDateTime;

     // array of date time values

     AsDateTimeArray: SpxDateTimeArray;

 

     // guid value

     AsGuid: SpxGuid;

     // array of guid values

     AsGuidArray: SpxGuidArray;

 

     // byte string value

     AsByteString: SpxByteArray;

     // array of byte string values

     AsByteStringArray: SpxByteArrayArray;

 

     // xml element value

     AsXmlElement: SpxString;

     // array of xml element values

     AsXmlElementArray: SpxStringArray;


    // NodeId value

    AsNodeId: SpxNodeId;

    // array of NodeId values

    AsNodeIdArray: SpxNodeIdArray;

    // ExpandedNodeId value

    AsExpandedNodeId: SpxExpandedNodeId;

    // array of ExpandedNodeId values

    AsExpandedNodeIdArray: SpxExpandedNodeIdArray;

    // StatusCode value

    AsStatusCode: SpxStatusCode;

    // array of StatusCode values

    AsStatusCodeArray: SpxStatusCodeArray;

    // QualifiedName value

    AsQualifiedName: SpxQualifiedName;

    // array of QualifiedName values

    AsQualifiedNameArray: SpxQualifiedNameArray;

    // LocalizedText value

    AsLocalizedText: SpxLocalizedText;

    // array of LocalizedText values

    AsLocalizedTextArray: SpxLocalizedTextArray;

end;

 

Array of values

 

SpxVariantArray = array of SpxVariant;

 

Data value

 

SpxDataValue = record

     // value

     Value: SpxVariant;

     // quality

     StatusCode: SpxStatusCode;

 

     // date/time data source (local)

     SourceTimestamp: SpxDateTime;

     // picoseconds data source

     SourcePicoseconds: SpxUInt16;

 

     // date/time server (local)

     ServerTimestamp: SpxDateTime;

     // picoseconds server

     ServerPicoseconds: SpxUInt16;

  end;

 

Array of data values

 

SpxDataValueArray = array of SpxDataValue;

 

Return timestamps

 

SpxTimestampsToReturn = (

     SpxTimestampsToReturn_Source = 0,

     SpxTimestampsToReturn_Server = 1,

     SpxTimestampsToReturn_Both = 2,

     SpxTimestampsToReturn_Neither = 3

);

 

Data change trigger

 

SpxDataChangeTrigger = (

     SpxDataChangeTrigger_Status = 0,

     SpxDataChangeTrigger_StatusValue = 1,

     SpxDataChangeTrigger_StatusValueTimestamp = 2

);

 

Deadband type

 

SpxDeadbandType = (

     SpxDeadbandType_None = 0,

     SpxDeadbandType_Absolute = 1,

     SpxDeadbandType_Percent  = 2

);

 

Data change filter

 

SpxDataChangeFilter = record

     // data change trigger

     Trigger: SpxDataChangeTrigger;

 

     // deadband type

     DeadbandType: SpxDeadbandType;

 

     // deadband value

     DeadbandValue: SpxDouble;

end;

 

Aggregate filter

 

SpxAggregateFilter = record

     // start time

     StartTime: SpxDateTime;

 

     // type of aggregate filter

     AggregateType: SpxNodeId;

 

     // processing interval

     ProcessingInterval: SpxDouble;

end;

 

Filter type

 

SpxFilterType = (

     SpxFilterType_None,

     SpxFilterType_DataChange,

     SpxFilterType_Aggregate

);

 

Filter options

 

SpxFilterParams = record

     // filter type

     FilterType: SpxFilterType;

 

     // change data filter

     DataChangeFilter: SpxDataChangeFilter;

 

     // aggregate filter

     AggregateFilter: SpxAggregateFilter;

end;

 

Channel event

 

SpxChannelEvent = (

     // reserved/invalid/ignore

     SpxChannelEvent_Invalid,

 

     // secure channel has been connected. (ignore for sync api)

     SpxChannelEvent_Connected,

 

     // secure channel has been disconnected

     SpxChannelEvent_Disconnected,

 

     // secure channel has been renewed

     SpxChannelEvent_Renewed,

 

     // certficate error

     SpxChannelEvent_VerifyCertificate

);

 

Notification for monitored item

 

SpxMonitoredItemNotify = record

    // client handle

    ClientHandle: SpxUInt32;

 

    // data value

    Value: SpxDataValue;

end;

 

Array of notification for monitored items

 

SpxMonitoredItemNotifyArray = array of SpxMonitoredItemNotify;

 

Callbacks for the trace

 

SpxLogCallback = class

     procedure OnLog(AMessage: SpxString); virtual;

     procedure OnLogWarning(AMessage: SpxString); virtual;

     procedure OnLogError(AMessage: SpxString); virtual;

     procedure OnLogException(AMessage: SpxString; AException: Exception); virtual;

end;

 

Callbacks for server

 

SpxServerCallback = class (SpxLogCallback)

     // callback for write value

     function OnWriteValue(ANodeId: SpxNodeId; AValue: SpxVariant): SpxStatusCode; virtual;

 

     // callback for call method

     function OnCallMethod(ANodeId, AParentNodeId: SpxNodeId; AInputArguments: SpxVariantArray; out AInputArgumentResults: SpxStatusCodeArray; out AOutputArguments: SpxVariantArray): SpxStatusCode; virtual;

 

     // callback for read history

     function OnReadHistory(ATimestampsToReturn: SpxTimestampsToReturn; AreleaseContinuationPoints, AIsReadModified: SpxBoolean; AStartTime, AEndTime: SpxDateTime; ANumValuesPerNode: SpxUInt32; AReturnBounds: SpxBoolean; ANodeId: SpxNodeId; AIndexRange: SpxString; ADataEncoding: SpxQualifiedName; AContinuationPoint: SpxByteArray; out AAnswerContinuationPoint: SpxByteArray; out AHistoryData: SpxDataValueArray): SpxStatusCode; virtual;

end;

 

Callbacks for client

 

SpxClientCallback = class (SpxLogCallback)

     // callback for channel event

     procedure OnChannelEvent(AEvent: SpxChannelEvent; AStatus: SpxStatusCode); virtual;

 

     // callback for notification of change of monitored items

     procedure OnMonitoredItemChange(ASubscriptionId: SpxUInt32; AValues : SpxMonitoredItemNotifyArray); virtual;

end;

 

Application info

 

SpxApplicationInfo = record

     // application name

     ApplicationName: SpxString;

 

     // application uri

     ApplicationUri: SpxString;

 

     // product uri

     ProductUri: SpxString;

 

     // manufacturer name

     ManufacturerName: SpxString;

 

     // software version

     SoftwareVersion: SpxString;

 

     // build number

     BuildNumber: SpxString;

 

     // build date

     BuildDate: SpxDateTime;

end;

 

Authentication type

  SpxAuthenticationType = (

    // anonymous

    SpxAuthenticationType_Anonymous = 0,

    // user name

    SpxAuthenticationType_UserName = 1

  );

Authentication parameters

  SpxAuthenticationParams = record

    // authentication type

    AuthenticationType: SpxAuthenticationType;

    // user name

    UserName: SpxString;

    // password

    Password: SpxString;

  end;

Server parameters

 

SpxServerConfig = record

     // endpoint url

    EndpointUrl: SpxString;


     // application info

     ApplicationInfo: SpxApplicationInfo;


    // allow security mode - None

    AllowSecurityNone: SpxBoolean;


    // allow security mode - Sign&Crypt

    AllowSecuritySignAndCrypt: SpxBoolean;


    // certificate file name

    CertificateFileName: SpxString;


    // trusted certificates folder

    TrustedCertificatesFolder: SpxString;


     // trace level

     TraceLevel: SpxTraceLevel;


     // callbacks for server

     Callback: SpxServerCallback;

end;

 

Client parameters

 

SpxClientConfig = record

     // endpoint url

     EndpointUrl: SpxString;


     // application info

     ApplicationInfo: SpxApplicationInfo;


     // certificate file name

     CertificateFileName: SpxString;


     // private key file name

     PrivateKeyFileName: SpxString;


     // trusted certificates folder

     TrustedCertificatesFolder: SpxString;


     // server certificate file name

     ServerCertificateFileName: SpxString;

     // authentication

     Authentication: SpxAuthenticationParams;

     // session timeout, sec

     SessionTimeout: SpxUInt16;


     // trace level

     TraceLevel: SpxTraceLevel;

 

     // callbacks for client

     Callback: SpxClientCallback;

end;

 

Enum value type parameters

 

SpxEnumValue = record

     // value

     Value: SpxInt32;

 

     // name

     Name: SpxLocalizedText;

 

     // description

     Description: SpxLocalizedText;

end;

 

Array of enum value type parameters

 

SpxEnumValues = array of SpxEnumValue;

 

Method argument

 

SpxArgument = record

     // name

     Name: SpxString;

 

     // description

     Description: SpxLocalizedText;

 

     // data type

     DataType: SpxDataType;

end;

 

Array of method arguments

 

SpxArguments = array of SpxArgument;

 

Node change type

 

SpxChangeType = (

     spxChange_BrowseName,

     spxChange_DisplayName,

     spxChange_Description,

     spxChange_DataType,

     spxChange_AllowWrite,

     spxChange_AllowHistory

);

 

Change node parameters

 

SpxChangeNodeParams = record

     // change type

     ChangeType: SpxChangeType;

 

     // browse name

     BrowseName: SpxString;

 

     // display name

     DisplayName: SpxLocalizedText;

 

     // description

     Description: SpxLocalizedText;

 

     // data type

     DataType: SpxDataType;

 

     // allow write

     AllowWrite: SpxBoolean;

 

     // allow history

     AllowHistory: SpxBoolean;

end;

 

Security mode

 

SpxMessageSecurityMode = (

     SpxMessageSecurityMode_Invalid = 0,

     SpxMessageSecurityMode_None = 1,

     SpxMessageSecurityMode_Sign = 2,

     SpxMessageSecurityMode_SignAndEncrypt = 3

);

 

Application type

 

SpxApplicationType = (

     SpxApplicationType_Server = 0,

     SpxApplicationType_Client = 1,

     SpxApplicationType_ClientAndServer = 2,

     SpxApplicationType_DiscoveryServer = 3

);

 

Application description

 

SpxApplicationDescription = record

     // application uri

     ApplicationUri: SpxString;

 

     // product uri

     ProductUri: SpxString;

 

     // application name

     ApplicationName: SpxLocalizedText;

 

     // application type

     ApplicationType: SpxApplicationType;

 

     // gateway server uri

     GatewayServerUri: SpxString;

 

     // discovery profile uri

     DiscoveryProfileUri: SpxString;

 

     // discovery list urls

     DiscoveryUrls: SpxStringArray;

end;

 

Array of application descriptions

 

SpxApplicationDescriptionArray = array of SpxApplicationDescription;

 

Endpoint description

 

SpxEndpointDescription = record

     // endpoint Url

     EndpointUrl: SpxString;

 

     // application description

     Server: SpxApplicationDescription;

 

     // server certificate

     ServerCertificate: SpxByteArray;

 

     // security mode

     SecurityMode: SpxMessageSecurityMode;

 

     // security policy uri

     SecurityPolicyUri: SpxString;

 

     // transport profile uri

     TransportProfileUri: SpxString;

 

     // security level

     SecurityLevel: SpxByte;

end;

 

Array of endpoint descriptions

 

SpxEndpointDescriptionArray = array of SpxEndpointDescription;

 

Identifier for read value

 

SpxReadValueId = record

     // node id

     NodeId: SpxNodeId;

 

     // attribute id

     AttributeId: SpxUInt32;

 

     // index range

     IndexRange: SpxString;

 

     // data encoding

     DataEncoding: SpxQualifiedName;

end;

 

Array of identifiers for read value

 

SpxReadValueIdArray = array of SpxReadValueId;

 

Identifier for read history

 

SpxHistoryReadValueId = record

     // node id

     NodeId: SpxNodeId;

 

     // index range

     IndexRange: SpxString;

 

     // data encoding

     DataEncoding: SpxQualifiedName;

 

     // continuation point

     ContinuationPoint: SpxByteArray;

end;

 

Array of identifiers for read history

 

SpxHistoryReadValueIdArray = array of SpxHistoryReadValueId;

 

Result read history

 

SpxHistoryReadResult = record

     // status code

     StatusCode: SpxStatusCode;

 

     // continuation point

     ContinuationPoint: SpxByteArray;

 

     // array of data value

     HistoryData: SpxDataValueArray;

end;

 

Array of results read history

 

SpxHistoryReadResultArray = array of SpxHistoryReadResult;

 

Write value parameters

 

SpxWriteValue = record

     // node id

     NodeId: SpxNodeId;

 

     // attribute id

     AttributeId: SpxUInt32;

 

     // index range

     IndexRange: SpxString;

 

     // data value

     Value: SpxDataValue;

end;

 

Array of write value parameters

 

SpxWriteValueArray = array of SpxWriteValue;

 

Call method parameters

 

SpxCallMethodRequest = record

     // method id

     MethodId: SpxNodeId;

 

     // parent id

     ObjectId: SpxNodeId;

 

     // input arguments

     InputArguments: SpxVariantArray;

end;

 

Array of call method parameters

 

SpxCallMethodRequestArray = array of SpxCallMethodRequest;

 

Result call method parameters

 

SpxCallMethodResult = record

    // status code

    StatusCode: SpxStatusCode;

 

    // results for input arguemts

    InputArgumentResults: SpxStatusCodeArray;

 

    // output arguments

    OutputArguments: SpxVariantArray;

end;

 

Array of results call method parameters

 

SpxCallMethodResultArray = array of SpxCallMethodResult;

 

Browse direction

 

SpxBrowseDirection = (

     SpxBrowseDirection_Forward = 0,

     SpxBrowseDirection_Inverse = 1,

     SpxBrowseDirection_Both = 2

);

 

Node class

 

SpxNodeClass = (

     SpxNodeClass_Unspecified = 0,

     SpxNodeClass_Object = 1,

     SpxNodeClass_Variable = 2,

     SpxNodeClass_Method = 4,

     SpxNodeClass_ObjectType = 8,

     SpxNodeClass_VariableType = 16,

     SpxNodeClass_ReferenceType = 32,

     SpxNodeClass_DataType = 64,

     SpxNodeClass_View = 128

);

 

Browse result

 

SpxBrowseResultMask = (

     SpxBrowseResultMask_None = 0,

     SpxBrowseResultMask_ReferenceTypeId = 1,

     SpxBrowseResultMask_IsForward = 2,

     SpxBrowseResultMask_NodeClass = 4,

     SpxBrowseResultMask_BrowseName = 8,

     SpxBrowseResultMask_DisplayName = 16,

     SpxBrowseResultMask_TypeDefinition = 32,

     SpxBrowseResultMask_All = 63,

     SpxBrowseResultMask_ReferenceTypeInfo = 3,

     SpxBrowseResultMask_TargetInfo = 60

);

 

Browse parameters

 

SpxBrowseDescription = record

     // node id

     NodeId: SpxNodeId;

 

     // browse direction

     BrowseDirection: SpxBrowseDirection;

 

     // reference type

     ReferenceTypeId: SpxNodeId;

 

     // include subtypes

     IncludeSubtypes: SpxBoolean;

 

     // mask node class (SpxNodeClass)

     NodeClassMask: SpxUInt32;

 

     // result mask (SpxBrowseResultMask)

     ResultMask: SpxUInt32;

end;

 

Array of browse parameters

 

SpxBrowseDescriptionArray = array of SpxBrowseDescription;

 

Expanded node identifier

 

SpxExpandedNodeId = record

    // namespace uri

    NamespaceUri: SpxString;

 

    // server index

    ServerIndex: SpxUInt32;

 

    // node id

    NodeId: SpxNodeId;

end;

 

Reference description

 

SpxReferenceDescription = record

     // reference type id

     ReferenceTypeId: SpxNodeId;

 

     // is forward reference

     IsForward: SpxBoolean;

 

     // node id

     NodeId: SpxExpandedNodeId;

 

     // browse name

     BrowseName: SpxQualifiedName;

 

     // display name

     DisplayName: SpxLocalizedText;

 

     // node class

     NodeClass: SpxNodeClass;

 

     // type defenition

     TypeDefinition: SpxExpandedNodeId;

end;

 

Array of reference description

 

SpxReferenceDescriptionArray = array of SpxReferenceDescription;

 

Browse result parameters

 

SpxBrowseResult = record

     // status code

     StatusCode: SpxStatusCode;

 

     // references

     References: SpxReferenceDescriptionArray;

 

     // continuation point

     ContinuationPoint: SpxByteArray;

end;

 

Array of browse results

 

SpxBrowseResultArray = array of SpxBrowseResult;

 

Subscription parameters

 

SpxSubscription = record

     // requested publishing interval, msec

     RequestedPublishingInterval: SpxDouble;

 

     // requested lifetime count

     RequestedLifetimeCount: SpxUInt32;

 

     // requested max keep alive couny

     RequestedMaxKeepAliveCount: SpxUInt32;

 

     // max notifications per publish

     MaxNotificationsPerPublish: SpxUInt32;

 

     // priority

     Priority: SpxByte;

end;

 

Result subscription parameters

 

SpxSubscriptionResult = record

    // revised publishing interval, msec

    RevisedPublishingInterval: SpxDouble;

 

    // revised lifetime count

    RevisedLifetimeCount: SpxUInt32;

 

    // revised max keep alive count

    RevisedMaxKeepAliveCount: SpxUInt32;

end;

 

Monitoring mode

 

SpxMonitoringMode = (

     SpxMonitoringMode_Disabled = 0,

     SpxMonitoringMode_Sampling = 1,

     SpxMonitoringMode_Reporting = 2

);

 

Monitored item parameters

 

SpxMonitoredItem = record

     // node id

     NodeId: SpxNodeId;

 

     // attribute id

     AttributeId: SpxUInt32;

 

     // index range

     IndexRange: SpxString;

 

     // data encoding

     DataEncoding: SpxQualifiedName;

 

     // monitoring mode

     MonitoringMode: SpxMonitoringMode;

 

     // client handle

     ClientHandle: SpxUInt32;

 

     // sampling interval

     SamplingInterval: SpxDouble;

 

     // queue size

     QueueSize: SpxUInt32;

 

     // discard oldest values in queue

     DiscardOldest: SpxBoolean;

end;

 

Array of monitored items

 

SpxMonitoredItemArray = array of SpxMonitoredItem;

 

Result create monitored item

 

SpxMonitoredItemResult = record

     // status code

     StatusCode: SpxStatusCode;

 

     // monitored item id

     MonitoredItemId: SpxUInt32;

 

     // sampling interval

     SamplingInterval: SpxDouble;

 

     // queue size

     QueueSize: SpxUInt32;

end;

 

Array of result create monitored items

 

SpxMonitoredItemResultArray = array of SpxMonitoredItemResult;

 

Modify monitored item parameters

 

SpxModifyMonitoredItem = record

     // monitored item id

     MonitoredItemId: SpxUInt32;

 

     // client handle

     ClientHandle: SpxUInt32;

 

     // sampling interval

     SamplingInterval: SpxDouble;

 

     // queue size

     QueueSize: SpxUInt32;

 

     // discard oldest values in queue

     DiscardOldest: SpxBoolean;

end;

 

Array of modify monitored items

 

SpxModifyMonitoredItemArray = array of SpxModifyMonitoredItem;

 

Result modify monitored item

 

SpxModifyMonitoredItemResult = record

     // status code

     StatusCode: SpxStatusCode;

 

     // sampling interval

     SamplingInterval: SpxDouble;

 

     // queue size

     QueueSize: SpxUInt32;

end;

 

Array of result modify monitored items

 

SpxModifyMonitoredItemResultArray = array of SpxModifyMonitoredItemResult;