/// <summary> /// Returns list of GDS servers known to the LDS. /// </summary> /// <param name="lds">The LDS to use.</param> /// <returns> /// TRUE if successful; FALSE otherwise. /// </returns> public List <string> GetDefaultGdsUrls(LocalDiscoveryServerClient lds) { List <string> gdsUrls = new List <string>(); try { DateTime lastResetTime; if (lds == null) { lds = new LocalDiscoveryServerClient(Configuration); } 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.LogError(exception, "Unexpected error connecting to LDS"); } return(gdsUrls); }
public MainForm(ApplicationInstance application) { InitializeComponent(); Icon = ClientUtils.GetAppIcon(); m_application = application; // get the configuration. m_configuration = m_application.ApplicationConfiguration.ParseExtension <GlobalDiscoveryClientConfiguration>(); // use suitable defaults if no configuration exists. if (m_configuration == null) { m_configuration = new GlobalDiscoveryClientConfiguration() { GlobalDiscoveryServerUrl = "opc.tcp://localhost:58810/GlobalDiscoveryServer", ExternalEditor = "notepad.exe" }; } m_filters = new QueryServersFilter(); m_identity = new UserIdentity(); m_gds = new GlobalDiscoveryServerClient(m_application, m_configuration.GlobalDiscoveryServerUrl); m_gds.KeepAlive += GdsServer_KeepAlive; m_gds.ServerStatusChanged += GdsServer_StatusNotification; m_lds = new LocalDiscoveryServerClient(m_application.ApplicationConfiguration); m_server = new ServerPushConfigurationClient(m_application); m_server.AdminCredentialsRequired += Server_AdminCredentialsRequired; m_server.KeepAlive += Server_KeepAlive; m_server.ServerStatusChanged += Server_StatusNotification; m_server.ConnectionStatusChanged += Server_ConnectionStatusChanged; RegistrationPanel.Initialize(m_gds, m_server, null, m_configuration); m_application.ApplicationConfiguration.CertificateValidator.CertificateValidation += CertificateValidator_CertificateValidation; UpdateStatus(true, DateTime.MinValue, "---"); UpdateGdsStatus(true, DateTime.MinValue, "---"); UpdateMainFormHeader(); ShowPanel(Panel.None); SelectServerButton.Enabled = false; ServerStatusButton.Enabled = false; CertificateButton.Enabled = false; HttpsCertificateButton.Visible = false; TrustListButton.Enabled = false; HttpsTrustListButton.Visible = false; }
/// <summary> /// Returns list of servers known to the LDS, excluding GDS servers. /// </summary> /// <param name="lds">The LDS to use.</param> /// <returns> /// TRUE if successful; FALSE otherwise. /// </returns> public List <string> GetDefaultServerUrls(LocalDiscoveryServerClient lds) { List <string> serverUrls = new List <string>(); try { DateTime lastResetTime; if (lds == null) { lds = new LocalDiscoveryServerClient(this.Application.ApplicationConfiguration); } var servers = lds.FindServersOnNetwork(0, 1000, out lastResetTime); foreach (var server in servers) { if (server.ServerCapabilities != null) { // ignore GDS and LDS servers if (server.ServerCapabilities.Contains(ServerCapability.GlobalDiscoveryServer) || server.ServerCapabilities.Contains(ServerCapability.LocalDiscoveryServer)) { continue; } } serverUrls.Add(server.DiscoveryUrl); } } catch (Exception exception) { Utils.Trace(exception, "Unexpected error connecting to LDS"); } return(serverUrls); }