High Performance OPC UA Server SDK  1.1.0.158
ua_deadbandtype

A value that defines the Deadband type and behaviour. More...

Enumerations

enum  ua_deadbandtype { UA_DEADBANDTYPE_NONE = 0, UA_DEADBANDTYPE_ABSOLUTE = 1, UA_DEADBANDTYPE_PERCENT = 2, UA_DEADBANDTYPE_MAX_ENUM_VALUE = INT32_MAX }
 A value that defines the Deadband type and behaviour. More...
 

Functions

const char * ua_deadbandtype_to_string (enum ua_deadbandtype deadbandtype)
 

Detailed Description

A value that defines the Deadband type and behaviour.

Enumeration Type Documentation

A value that defines the Deadband type and behaviour.

Enumerator
UA_DEADBANDTYPE_NONE 

No Deadband calculation should be applied.

UA_DEADBANDTYPE_ABSOLUTE 

An AbsoluteDeadband is used.

For this type the deadbandValue contains the absolute change in a data value that shall cause a Notification to be generated. This parameter applies only to Variables with any Number data type.

An exception that causes a DataChange Notification based on an AbsoluteDeadband is determined as follows:

Generate a Notification if (absolute value of (last cached value - current value) > AbsoluteDeadband)

The last cached value is defined as the last value pushed to the queue.

If the item is an array of values, the entire array is returned if any array element exceeds the AbsoluteDeadband, or the size or dimension of the array changes.

UA_DEADBANDTYPE_PERCENT 

A PercentDeadband is used.

For this type of deadband the deadbandValue is defined as the percent age of the EURange. That is, it applies only to AnalogItems with an EURange Property that defines the typical value range for the item. This range shall be multiplied with the deadbandValue and then compared to the actual value change to determine the need for a data change notification. The following pseudo code shows how the deadband is calculated:

DataChange if (absolute value of (last cached value - current value) > (deadbandValue/100.0) * ((high–low) of EURange)))

The range of the deadbandValue is from 0.0 to 100.0 Percent. Specifying a deadbandValue outside of this range will be rejected and reported with the StatusCode Bad_DeadbandFilterInvalid.

If the Value of the MonitoredItem is an array, then the deadband calculation logic shall be applied to each element of the array. If an element that requires a DataChange is found, then no further deadband checking is necessary and the entire array shall be returned.