public void UpdateDeadbandFilters(IList<ComDaGroupItem> items)
{
// update the monitored item filter.
for (int ii = 0; ii < items.Count; ii++)
{
ComDaGroupItem item = items[ii];
if (item == null)
{
continue;
}
if (item.EuType != (int)OpcRcw.Da.OPCEUTYPE.OPC_ANALOG)
{
item.MonitoredItem.Filter = null;
continue;
}
// do nothing if the filter is not set and is not required.
if (item.MonitoredItem.Filter == null)
{
if (this.Deadband <= 0 && item.Deadband <= 0)
{
continue;
}
}
DataChangeFilter filter = new DataChangeFilter();
filter.Trigger = DataChangeTrigger.StatusValue;
if (this.Deadband <= 0 && item.Deadband <= 0)
{
filter.DeadbandType = (uint)DeadbandType.None;
}
else
{
filter.DeadbandType = (uint)DeadbandType.Percent;
filter.DeadbandValue = this.Deadband;
}
if (item.Deadband >= 0)
{
filter.DeadbandValue = item.Deadband;
}
item.MonitoredItem.Filter = filter;
}
}