public StartMonitoring ( |
||
context | ||
monitoredItem | ISampledDataChangeMonitoredItem | |
return | bool |
/// <summary> /// Starts monitoring the item. /// </summary> /// <remarks> /// It will use the external source for monitoring if the source accepts the item. /// The changes will not take affect until the ApplyChanges() method is called. /// </remarks> public virtual void StartMonitoring(OperationContext context, ISampledDataChangeMonitoredItem monitoredItem) { lock (m_lock) { // do nothing for disabled or exception based items. if (monitoredItem.MonitoringMode == MonitoringMode.Disabled || monitoredItem.MinimumSamplingInterval == 0) { m_sampledItems.Add(monitoredItem, null); return; } // find a suitable sampling group. foreach (SamplingGroup samplingGroup in m_samplingGroups) { if (samplingGroup.StartMonitoring(context, monitoredItem)) { m_sampledItems.Add(monitoredItem, samplingGroup); return; } } // create a new sampling group. SamplingGroup samplingGroup2 = new SamplingGroup( m_server, m_nodeManager, m_samplingRates, context, monitoredItem.SamplingInterval); samplingGroup2.StartMonitoring(context, monitoredItem); m_samplingGroups.Add(samplingGroup2); m_sampledItems.Add(monitoredItem, samplingGroup2); } }
/// <summary> /// Starts monitoring the item. /// </summary> /// <remarks> /// It will use the external source for monitoring if the source accepts the item. /// The changes will not take affect until the ApplyChanges() method is called. /// </remarks> public virtual void StartMonitoring(OperationContext context, ISampledDataChangeMonitoredItem monitoredItem) { lock (m_lock) { // do nothing for disabled or exception based items. if (monitoredItem.MonitoringMode == MonitoringMode.Disabled || monitoredItem.MinimumSamplingInterval == 0) { m_sampledItems.Add(monitoredItem, null); return; } // find a suitable sampling group. foreach (SamplingGroup samplingGroup in m_samplingGroups) { if (samplingGroup.StartMonitoring(context, monitoredItem)) { m_sampledItems.Add(monitoredItem, samplingGroup); return; } } // create a new sampling group. SamplingGroup samplingGroup2 = new SamplingGroup( m_server, m_nodeManager, m_samplingRates, context, monitoredItem.SamplingInterval); samplingGroup2.StartMonitoring(context, monitoredItem); m_samplingGroups.Add(samplingGroup2); m_sampledItems.Add(monitoredItem, samplingGroup2); } }