/// <summary> /// Initializes a new instance of the <see cref="AuditEventForm"/> class. /// </summary> /// <param name="session">The session.</param> /// <param name="subscription">The subscription.</param> public AuditEventForm(Session session, Subscription subscription) { InitializeComponent(); m_session = session; m_subscription = subscription; // a table used to track event types. m_eventTypeMappings = new Dictionary <NodeId, NodeId>(); // the filter to use. m_filter = new FilterDefinition(); m_filter.AreaId = ObjectIds.Server; m_filter.Severity = EventSeverity.Min; m_filter.IgnoreSuppressedOrShelved = true; m_filter.EventTypes = new NodeId[] { ObjectTypeIds.AuditUpdateMethodEventType }; // find the fields of interest. m_filter.SelectClauses = m_filter.ConstructSelectClauses(m_session, ObjectTypeIds.AuditUpdateMethodEventType); // declate callback. m_MonitoredItem_Notification = new MonitoredItemNotificationEventHandler(MonitoredItem_Notification); // create a monitored item based on the current filter settings. m_monitoredItem = m_filter.CreateMonitoredItem(m_session); // set up callback for notifications. m_monitoredItem.Notification += m_MonitoredItem_Notification; m_subscription.AddItem(m_monitoredItem); m_subscription.ApplyChanges(); }
/// <summary> /// Initializes a new instance of the <see cref="AuditEventForm"/> class. /// </summary> /// <param name="session">The session.</param> /// <param name="subscription">The subscription.</param> public AuditEventForm(Session session, Subscription subscription) { InitializeComponent(); m_session = session; m_subscription = subscription; // a table used to track event types. m_eventTypeMappings = new Dictionary<NodeId, NodeId>(); // the filter to use. m_filter = new FilterDefinition(); m_filter.AreaId = ObjectIds.Server; m_filter.Severity = EventSeverity.Min; m_filter.IgnoreSuppressedOrShelved = true; m_filter.EventTypes = new NodeId[] { ObjectTypeIds.AuditUpdateMethodEventType }; // find the fields of interest. m_filter.SelectClauses = m_filter.ConstructSelectClauses(m_session, ObjectTypeIds.AuditUpdateMethodEventType); // declate callback. m_MonitoredItem_Notification = new MonitoredItemNotificationEventHandler(MonitoredItem_Notification); // create a monitored item based on the current filter settings. m_monitoredItem = m_filter.CreateMonitoredItem(m_session); // set up callback for notifications. m_monitoredItem.Notification += m_MonitoredItem_Notification; m_subscription.AddItem(m_monitoredItem); m_subscription.ApplyChanges(); }
/// <summary> /// Updates the application after connecting to or disconnecting from the server. /// </summary> private void Server_ConnectComplete(object sender, EventArgs e) { try { m_session = ConnectServerCTRL.Session; // check for disconnect. if (m_session == null) { if (m_auditEventForm != null) { m_auditEventForm.Close(); m_auditEventForm = null; } return; } // set a suitable initial state. if (m_session != null && !m_connectedOnce) { m_connectedOnce = true; } // create the default subscription. m_subscription = new Subscription(); m_subscription.DisplayName = null; m_subscription.PublishingInterval = 1000; m_subscription.KeepAliveCount = 10; m_subscription.LifetimeCount = 100; m_subscription.MaxNotificationsPerPublish = 1000; m_subscription.PublishingEnabled = true; m_subscription.TimestampsToReturn = TimestampsToReturn.Both; m_session.AddSubscription(m_subscription); m_subscription.Create(); // must specify the fields that the form is interested in. m_filter.SelectClauses = m_filter.ConstructSelectClauses( m_session, NodeId.Parse("ns=2;s=4:2"), NodeId.Parse("ns=2;s=4:1"), ObjectTypeIds.DialogConditionType, ObjectTypeIds.ExclusiveLimitAlarmType, ObjectTypeIds.NonExclusiveLimitAlarmType); // create a monitored item based on the current filter settings. m_monitoredItem = m_filter.CreateMonitoredItem(m_session); // set up callback for notifications. m_monitoredItem.Notification += m_MonitoredItem_Notification; m_subscription.AddItem(m_monitoredItem); m_subscription.ApplyChanges(); // send an initial refresh. Conditions_RefreshMI_Click(sender, e); ConditionsMI.Enabled = true; ViewMI.Enabled = true; } catch (Exception exception) { ClientUtils.HandleException(this.Text, exception); } }