Esempio n. 1
0
        /// <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;
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        /// <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;
            }
        }