/// <summary> /// Prompts the user to select a node. /// </summary> public ReferenceDescription ShowDialog( Session session, NodeId rootId, ViewDescription view, string caption, params NodeId[] referenceTypeIds) { // set the caption. if (!String.IsNullOrEmpty(caption)) { this.Text = caption; } // set default root. if (NodeId.IsNull(rootId)) { rootId = Opc.Ua.ObjectIds.ObjectsFolder; } // set default reference type. if (referenceTypeIds == null) { referenceTypeIds = new NodeId[] { Opc.Ua.ReferenceTypeIds.HierarchicalReferences }; } // initialize the control. BrowseCTRL.Initialize(session, rootId, referenceTypeIds); BrowseCTRL.View = view; // display the dialog. if (ShowDialog() != DialogResult.OK) { return(null); } return(BrowseCTRL.SelectedNode); }
async void Window_PageClosing(object sender, RoutedEventArgs e) { if (m_masterPage == null && m_pages.Count > 0) { MessageDlg dialog = new MessageDlg("Close all sessions?", MessageDlgButton.Yes, MessageDlgButton.No); MessageDlgButton result = await dialog.ShowAsync(); if (result != MessageDlgButton.Yes) { return; } } BrowseCTRL.Clear(); for (int ii = 0; ii < m_pages.Count; ii++) { if (Object.ReferenceEquals(m_pages[ii], sender)) { m_pages.RemoveAt(ii); break; } } }
/// <summary> /// Connects to a server. /// </summary> public void Connect(ConfiguredEndpoint endpoint) { if (endpoint == null) { return; } Session session = SessionsCTRL.Connect(endpoint); if (session != null) { // stop any reconnect operation. if (m_reconnectHandler != null) { m_reconnectHandler.Dispose(); m_reconnectHandler = null; } m_session = session; m_session.KeepAlive += new KeepAliveEventHandler(StandardClient_KeepAlive); BrowseCTRL.SetView(m_session, BrowseViewType.Objects, null); StandardClient_KeepAlive(m_session, null); } }
private void ChangeViewBTN_Click(object sender, EventArgs e) { try { ViewDescription view = null; ReferenceDescription reference = ViewCB.SelectedItem as ReferenceDescription; if (reference != null && !NodeId.IsNull(reference.NodeId)) { view = new ViewDescription(); view.ViewId = ExpandedNodeId.ToNodeId(reference.NodeId, m_session.NamespaceUris); view.ViewVersion = 0; view.Timestamp = DateTime.MinValue; } BrowseCTRL.View = view; BrowseCTRL.RefreshSelection(); } catch (Exception exception) { ClientUtils.HandleException(this.Text, exception); } }
/// <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; // browse the instances in the server. BrowseCTRL.Initialize(m_session, ObjectIds.RootFolder, ReferenceTypeIds.Organizes, ReferenceTypeIds.Aggregates, ReferenceTypeIds.HierarchicalReferences); if (m_session != null) { var typeSystem = new ComplexTypeSystem(m_session); typeSystem.Load().Wait(); } } catch (Exception exception) { ClientUtils.HandleException(this.Text, exception); } }
private void subscribeToolStripMenuItem_Click(object sender, EventArgs e) { if ((NodeId)BrowseCTRL.SelectedNode.NodeId != null) { if (subscriptionOutputWindow == null) { subscriptionOutputWindow = new SubscriptionOutput(); } if (m_subscription == null) { m_subscription = new Subscription(m_session.DefaultSubscription); m_subscription.PublishingEnabled = true; m_subscription.PublishingInterval = 1000; m_session.AddSubscription(m_subscription); m_subscription.Create(); } if (monitoredItems.Count == 0) { if (BrowseCTRL.GetChildOfSelectedNode(0) != null) { BrowseDescription nodeToBrowse = new BrowseDescription(); nodeToBrowse.NodeId = (NodeId)BrowseCTRL.SelectedNode.NodeId; nodeToBrowse.BrowseDirection = BrowseDirection.Forward; nodeToBrowse.ReferenceTypeId = Opc.Ua.ReferenceTypeIds.HierarchicalReferences; nodeToBrowse.IncludeSubtypes = true; //nodeToBrowse.NodeClassMask = (uint)(NodeClass.Object); nodeToBrowse.ResultMask = (uint)(BrowseResultMask.All); ReferenceDescriptionCollection references = ClientUtils.Browse(m_session, nodeToBrowse, false); subscriptionOutputWindow.label1.Text = "You selected a folder: these are the child nodes:\n"; foreach (var item in references) { var mi = new MonitoredItem(m_subscription.DefaultItem); mi.StartNodeId = (NodeId)item.NodeId; mi.AttributeId = Attributes.DisplayName; mi.MonitoringMode = MonitoringMode.Reporting; mi.SamplingInterval = 1000; mi.QueueSize = 0; mi.DiscardOldest = true; mi.Notification += new MonitoredItemNotificationEventHandler(Mi_Notification); monitoredItems.Add(mi); } } else { var mi = new MonitoredItem(m_subscription.DefaultItem); mi.StartNodeId = (NodeId)BrowseCTRL.SelectedNode.NodeId; mi.AttributeId = Attributes.Value; mi.MonitoringMode = MonitoringMode.Reporting; mi.SamplingInterval = 1000; mi.QueueSize = 0; mi.DiscardOldest = true; mi.Notification += new MonitoredItemNotificationEventHandler(Mi_Notification); // define event handler for this item, and then add to subscription mi.Notification += new MonitoredItemNotificationEventHandler(monitoredItem_Notification); monitoredItems.Add(mi); } m_subscription.AddItems(monitoredItems); } subscriptionOutputWindow.Show(); subscriptionOutputWindow.FormClosed += OutputWindow_FormClosed; m_subscription.ApplyChanges(); } }
/// <summary> /// Changes the session used by the control. /// </summary> /// <param name="session">The session.</param> public void ChangeSession(Session session) { BrowseCTRL.ChangeSession(session); }
/// <summary> /// The reference for the parent of the currently selected node. /// </summary> public void RefreshSelection() { BrowseCTRL.RefreshSelection(); }
/// <summary> /// Returns the child node at the specified index. /// </summary> public ReferenceDescription GetChildOfSelectedNode(int index) { return(BrowseCTRL.GetChildOfSelectedNode(index)); }
private void toolStripMainWriteValueButton_Click(object sender, EventArgs e) { BrowseCTRL.WriteMI_Click(sender, e); }
private void toolStripMainReadValueButton_Click(object sender, EventArgs e) { BrowseCTRL.ReadMI_Click(sender, e); }
private void toolStripMainBrowseASButton_Click(object sender, EventArgs e) { BrowseCTRL.BrowseMI_Click(sender, e); }