private bool ModifyDeadband(Subscription subscription)
{
if (m_errorEvent.WaitOne(500, false))
{
return false;
}
lock (m_variables)
{
for (int ii = 0; ii < m_variables.Count; ii++)
{
foreach (IList<Notification> notification in m_variables[ii].Notifications.Values)
{
notification.Clear();
}
}
foreach (MonitoredItem monitoredItem in subscription.MonitoredItems)
{
DataChangeFilter filter =(DataChangeFilter)monitoredItem.Filter;
filter.DeadbandValue /= 2;
monitoredItem.Filter = filter;
}
}
subscription.ApplyChanges();
// check results.
bool success = true;
foreach (MonitoredItem monitoredItem in subscription.MonitoredItems)
{
if (!CheckDeadbandError(monitoredItem))
{
success = false;
break;
}
}
if (!success)
{
return false;
}
if (m_errorEvent.WaitOne(500, false))
{
return false;
}
return true;
}