Esempio n. 1
0
        public void Initialize(
            ConfiguredEndpointCollection endpoints,
            LocalDiscoveryServer lds,
            GlobalDiscoveryServer gds,
            QueryServersFilter filters)
        {
            m_lds = lds;
            m_gds = gds;
            m_filters = filters;

            DiscoveryTreeView.Nodes.Clear();

            TreeNode node = new TreeNode("Local Machine");
            node.SelectedImageIndex = node.ImageIndex = ImageIndex.Computer;
            node.Tag = RootFolders.LocalMachine;
            node.Nodes.Add(new TreeNode());
            DiscoveryTreeView.Nodes.Add(node);

            node = new TreeNode("Local Network");
            node.SelectedImageIndex = node.ImageIndex = ImageIndex.LocalNetwork;
            node.Tag = RootFolders.LocalNetwork;
            node.Nodes.Add(new TreeNode());
            DiscoveryTreeView.Nodes.Add(node);

            node = new TreeNode("Global Discovery");
            node.SelectedImageIndex = node.ImageIndex = ImageIndex.GlobalNetwork;
            node.Tag = RootFolders.GlobalDiscovery;
            node.Nodes.Add(new TreeNode());
            DiscoveryTreeView.Nodes.Add(node);

            if (endpoints != null)
            {
                m_endpoints = endpoints;

                node = new TreeNode("Custom Discovery");
                node.SelectedImageIndex = node.ImageIndex = ImageIndex.ClosedFolder;
                node.Tag = RootFolders.CustomDiscovery;

                TreeNode child = new TreeNode("<double click to add server>");
                child.SelectedImageIndex = child.ImageIndex = ImageIndex.Add;
                child.Tag = RootFolders.Add;
                node.Nodes.Add(child);

                DiscoveryTreeView.Nodes.Add(node);

                foreach (ConfiguredEndpoint ce in m_endpoints.Endpoints)
                {
                    child = new TreeNode(Utils.Format("{0}", ce.ToString()));
                    child.SelectedImageIndex = child.ImageIndex = (ce.Description.SecurityMode == MessageSecurityMode.None && ce.EndpointUrl.Scheme != Utils.UriSchemeHttps) ? ImageIndex.InSecure : ImageIndex.Secure;
                    child.Tag = ce;
                    node.Nodes.Add(child);
                }
            }
        }
Esempio n. 2
0
        public EndpointDescription ShowDialog(
            IWin32Window owner,
            ConfiguredEndpointCollection endpoints,
            LocalDiscoveryServer lds,
            GlobalDiscoveryServer gds,
            QueryServersFilter filters)
        {
            DiscoveryControl.Initialize(endpoints, lds, gds, filters);

            if (base.ShowDialog(owner) != System.Windows.Forms.DialogResult.OK)
            {
                return(null);
            }

            return(DiscoveryControl.SelectedEndpoint);
        }
Esempio n. 3
0
        /// <summary>
        /// Selects the default GDS.
        /// </summary>
        /// <param name="lds">The LDS to use.</param>
        /// <returns>
        /// TRUE if successful; FALSE otherwise.
        /// </returns>
        public bool SelectDefaultGds(LocalDiscoveryServer lds)
        {
            List <string> gdsUrls = new List <string>();

            try
            {
                DateTime lastResetTime;

                if (lds == null)
                {
                    lds = new LocalDiscoveryServer(this.Application.ApplicationConfiguration);
                }

                // gdsUrls.Add("opc.tcp://bronze-b:58810/GlobalDiscoveryServer");

                var servers = lds.FindServersOnNetwork(0, 1000, out lastResetTime);

                foreach (var server in servers)
                {
                    if (server.ServerCapabilities != null && server.ServerCapabilities.Contains(ServerCapability.GlobalDiscoveryServer))
                    {
                        gdsUrls.Add(server.DiscoveryUrl);
                    }
                }
            }
            catch (Exception exception)
            {
                Utils.Trace(exception, "Unexpected error connecting to LDS");
            }

            string url = new SelectGdsDialog().ShowDialog(null, this, gdsUrls);

            if (url != null)
            {
                return(true);
            }

            return(false);
        }