/// <summary> /// Changes the session used. /// </summary> public void ChangeSession(Session session) { if (!Object.ReferenceEquals(session, m_session)) { m_session = session; BrowseCTRL.ChangeSession(m_session); EventTypeCTRL.ChangeSession(m_session); EventFilterCTRL.ChangeSession(m_session); EventsCTRL.ChangeSession(m_session); if (m_subscription != null) { m_subscription.PublishStatusChanged -= m_PublishStatusChanged; m_subscription.FastEventCallback = null; m_subscription = null; } if (m_session != null) { // find new subscription. foreach (Subscription subscription in m_session.Subscriptions) { if (Object.ReferenceEquals(subscription.Handle, this)) { m_subscription = subscription; m_subscription.PublishStatusChanged += m_PublishStatusChanged; m_subscription.FastEventCallback = OnEvent; break; } } } } }
private void BrowseCTRL_AfterSelect(object sender, EventArgs e) { try { ReferenceDescription reference = BrowseCTRL.SelectedNode; if (reference == null || NodeId.IsNull(reference.NodeId) || reference.NodeId.IsAbsolute) { EventTypeCTRL.ShowType(null); return; } EventTypeCTRL.ShowType((NodeId)reference.NodeId); } catch (Exception exception) { ClientUtils.HandleException(this.Text, exception); } }
/// <summary> /// Moves the sequence forward. /// </summary> public void Next() { if (m_state == DisplayState.ViewUpdates) { return; } if (m_state == DisplayState.SelectEventType) { UpdateFilter(); } SetDisplayState(++m_state); if (m_state == DisplayState.SelectEventType) { BrowseCTRL.Initialize(m_session, Opc.Ua.ObjectTypeIds.BaseEventType, Opc.Ua.ReferenceTypeIds.HasSubtype); BrowseCTRL.SelectNode((m_filter == null || m_filter.EventTypeId == null) ? Opc.Ua.ObjectTypeIds.BaseEventType : m_filter.EventTypeId); EventTypeCTRL.ShowType(Opc.Ua.ObjectTypeIds.BaseEventType); return; } if (m_state == DisplayState.SelectEventFields) { EventFilterCTRL.SetFilter(m_filter); return; } if (m_state == DisplayState.ApplyChanges) { UpdateItems(); return; } if (m_state == DisplayState.ViewUpdates) { EventsCTRL.SetFilter(m_filter); return; } }