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 nodeidentifiers

 

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 localizedtext

 

SpxLocalizedTextArray = array ofSpxLocalizedText;

 

Qualified Name

 

SpxQualifiedName = record

     // namespace index

     NamespaceIndex:SpxUInt16;

 

     // name

     Name:SpxString;

end;

 

Array of qualified names

 

SpxQualifiedNameArray = array ofSpxQualifiedName;

 

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 booleanvalues

     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 uint16values

     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 uint64values

     AsUInt64Array:SpxUInt64Array;

 

     // float value

     AsFloat:SpxFloat;

     // array of floatvalues

     AsFloatArray:SpxFloatArray;

 

     // double value

     AsDouble:SpxDouble;

     // array of doublevalues

     AsDoubleArray:SpxDoubleArray;

 

     // string value

     AsString:SpxString;

     // array of stringvalues

     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 stringvalues

     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 datasource

     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 aggregatefilter

     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 channelhas been connected. (ignore for sync api)

     SpxChannelEvent_Connected,

 

     // secure channelhas been disconnected

     SpxChannelEvent_Disconnected,

 

     // secure channelhas been renewed

     SpxChannelEvent_Renewed,

 

     // certficateerror

     SpxChannelEvent_VerifyCertificate

);

 

Notification formonitored item

 

SpxMonitoredItemNotify = record

    //client handle

   ClientHandle: SpxUInt32;

 

    //data value

   Value: SpxDataValue;

end;

 

Array ofnotification for monitored items

 

SpxMonitoredItemNotifyArray = array ofSpxMonitoredItemNotify;

 

Callbacks for thetrace

 

SpxLogCallback = class

     procedureOnLog(AMessage: SpxString); virtual;

     procedureOnLogWarning(AMessage: SpxString); virtual;

     procedureOnLogError(AMessage: SpxString); virtual;

     procedureOnLogException(AMessage: SpxString; AException:Exception); virtual;

end;

 

Callbacks for server

 

SpxServerCallback = class (SpxLogCallback)

     // callback for user/name authorization

     function OnAuthorizationUserName(AUserName, APassword: SpxString): SpxBoolean; virtual;

     // callback for write value

     functionOnWriteValue(ANodeId: SpxNodeId; AValue: SpxVariant):SpxStatusCode; virtual;

 

     // callback for callmethod

     functionOnCallMethod(ANodeId, AParentNodeId: SpxNodeId; AInputArguments:SpxVariantArray; outAInputArgumentResults: SpxStatusCodeArray; outAOutputArguments: SpxVariantArray):SpxStatusCode; virtual;

 

     // callback for readhistory

     functionOnReadHistory(ATimestampsToReturn: SpxTimestampsToReturn;AreleaseContinuationPoints, AIsReadModified:SpxBoolean; AStartTime, AEndTime: SpxDateTime; ANumValuesPerNode: SpxUInt32; AReturnBounds:SpxBoolean; ANodeId: SpxNodeId; AIndexRange:SpxString; ADataEncoding: SpxQualifiedName; AContinuationPoint:SpxByteArray; outAAnswerContinuationPoint: SpxByteArray; outAHistoryData: SpxDataValueArray):SpxStatusCode; virtual;

end;

 

Callbacks for client

 

SpxClientCallback = class (SpxLogCallback)

     // callback for channelevent

     procedureOnChannelEvent(AEvent: SpxChannelEvent; AStatus:SpxStatusCode); virtual;

 

     // callback fornotification of change of monitored items

     procedureOnMonitoredItemChange(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;

    

    // allow authorization - Anonymous

    AllowAuthorizationAnonymous: SpxBoolean;


    // allow authorization - UserName

    AllowAuthorizationUserName: 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;

     // connect timeoutsec

     ConnectTimeout: SpxUInt16; 


     // session timeout,sec

     SessionTimeout:SpxUInt16;


     // trace level

     TraceLevel:SpxTraceLevel;

 

     // callbacks for client

     Callback:SpxClientCallback;

end;

 

Enum value typeparameters

 

SpxEnumValue = record

     // value

     Value:SpxInt32;

 

     // name

     Name:SpxLocalizedText;

 

     // description

     Description:SpxLocalizedText;

end;

 

Array of enum valuetype parameters

 

SpxEnumValues = array of SpxEnumValue;

 

Method argument

 

SpxArgument = record

     // name

     Name:SpxString;

 

     // description

     Description:SpxLocalizedText;

 

     // data type

     DataType:SpxDataType;

end;

 

Array of methodarguments

 

SpxArguments = array of SpxArgument;

 

Node change type

 

SpxChangeType = (

     spxChange_BrowseName,

     spxChange_DisplayName,

     spxChange_Description,

     spxChange_DataType,

     spxChange_AllowWrite,

     spxChange_AllowHistory

);

 

Change nodeparameters

 

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

);

 

Applicationdescription

 

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 applicationdescriptions

 

SpxApplicationDescriptionArray = array ofSpxApplicationDescription;

 

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 endpointdescriptions

 

SpxEndpointDescriptionArray = array ofSpxEndpointDescription;

 

Identifier for readvalue

 

SpxReadValueId = record

     //node id

     NodeId:SpxNodeId;

 

     //attribute id

     AttributeId:SpxUInt32;

 

     //index range

     IndexRange:SpxString;

 

     //data encoding

     DataEncoding:SpxQualifiedName;

end;

 

Array of identifiers forread value

 

SpxReadValueIdArray = array ofSpxReadValueId;

 

Identifier for readhistory

 

SpxHistoryReadValueId = record

     //node id

     NodeId:SpxNodeId;

 

     //index range

     IndexRange:SpxString;

 

     //data encoding

     DataEncoding:SpxQualifiedName;

 

     //continuation point

     ContinuationPoint:SpxByteArray;

end;

 

Array of identifiers forread history

 

SpxHistoryReadValueIdArray = array ofSpxHistoryReadValueId;

 

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 ofSpxHistoryReadResult;

 

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 methodparameters

 

SpxCallMethodRequestArray = array ofSpxCallMethodRequest;

 

Result call method parameters

 

SpxCallMethodResult = record

    // status code

   StatusCode: SpxStatusCode;

 

    //results for input arguemts

   InputArgumentResults: SpxStatusCodeArray;

 

    //output arguments

   OutputArguments: SpxVariantArray;

end;

 

Array of resultscall method parameters

 

SpxCallMethodResultArray = array ofSpxCallMethodResult;

 

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 ofSpxBrowseDescription;

 

Expanded node identifier

 

SpxExpandedNodeId = record

    //namespace uri

   NamespaceUri: SpxString;

 

    //server index

   ServerIndex: SpxUInt32;

 

    //node id

   NodeId: SpxNodeId;

end;

 

Referencedescription

 

SpxReferenceDescription = record

     //reference type id

     ReferenceTypeId:SpxNodeId;

 

     // is forwardreference

     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 referencedescription

 

SpxReferenceDescriptionArray = array ofSpxReferenceDescription;

 

Browse result parameters

 

SpxBrowseResult = record

     //status code

     StatusCode:SpxStatusCode;

 

     //references

     References:SpxReferenceDescriptionArray;

 

     // continuationpoint

     ContinuationPoint:SpxByteArray;

end;

 

Array of browseresults

 

SpxBrowseResultArray = array ofSpxBrowseResult;

 

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 monitoreditems

 

SpxMonitoredItemArray = array ofSpxMonitoredItem;

 

Result createmonitored item

 

SpxMonitoredItemResult = record

     //status code

     StatusCode:SpxStatusCode;

 

     //monitored item id

     MonitoredItemId:SpxUInt32;

 

     //sampling interval

     SamplingInterval:SpxDouble;

 

     //queue size

     QueueSize:SpxUInt32;

end;

 

Array of resultcreate monitored items

 

SpxMonitoredItemResultArray = array ofSpxMonitoredItemResult;

 

Modify monitoreditem 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 modifymonitored items

 

SpxModifyMonitoredItemArray = array ofSpxModifyMonitoredItem;

 

Result modifymonitored item

 

SpxModifyMonitoredItemResult = record

     //status code

     StatusCode:SpxStatusCode;

 

     //sampling interval

     SamplingInterval:SpxDouble;

 

     //queue size

     QueueSize:SpxUInt32;

end;

 

Array of result modifymonitored items

 

SpxModifyMonitoredItemResultArray = array ofSpxModifyMonitoredItemResult;