protected override void OnMonitoredItemCreated(
ServerSystemContext context,
NodeHandle handle,
MonitoredItem monitoredItem)
{
// check if the variable needs to be sampled.
if (monitoredItem.AttributeId == Attributes.Value)
{
BaseVariableState variable = handle.Node as BaseVariableState;
if (variable != null && variable.MinimumSamplingInterval > 0)
{
CreateSampledItem(monitoredItem.SamplingInterval, monitoredItem);
}
}
// check if diagnostics collection needs to be turned one.
if (IsDiagnosticsNode(handle.Node))
{
monitoredItem.AlwaysReportUpdates = IsDiagnosticsStructureNode(handle.Node);
if (monitoredItem.MonitoringMode != MonitoringMode.Disabled)
{
m_diagnosticsMonitoringCount++;
if (m_diagnosticsScanTimer == null)
{
m_diagnosticsScanTimer = new Timer(DoScan, null, 1000, 1000);
}
DoScan(true);
}
}
}