예제 #1
0
        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();
                m_configuration.GlobalDiscoveryServerUrl = "opc.tcp://localhost:58810";
                m_configuration.ExternalEditor           = "devenv.exe";
            }

            m_filters  = new QueryServersFilter();
            m_identity = new UserIdentity();
            m_gds      = new GlobalDiscoveryServer(m_application);
            m_lds      = new LocalDiscoveryServer(m_application.ApplicationConfiguration);

            m_server = new PushConfigurationServer(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, null, m_configuration);

            m_application.ApplicationConfiguration.CertificateValidator.CertificateValidation += CertificateValidator_CertificateValidation;
            UpdateStatus(true, DateTime.MinValue, "---");

            ShowPanel(Panel.None);

            SelectServerButton.Enabled     = false;
            ServerStatusButton.Enabled     = false;
            CertificateButton.Enabled      = false;
            HttpsCertificateButton.Visible = false;
            TrustListButton.Enabled        = false;
            HttpsTrustListButton.Visible   = false;

            try
            {
                m_endpoints = ConfiguredEndpointCollection.Load("ManuallySpecifiedEndpoints.xml");
            }
            catch (Exception)
            {
                m_endpoints = new ConfiguredEndpointCollection();
                m_endpoints.Save("ManuallySpecifiedEndpoints.xml");
            }
        }
예제 #2
0
        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;
        }
예제 #3
0
        private void SelectServerButton_Click(object sender, EventArgs e)
        {
            try
            {
                var endpoint = new SelectServerDialog().ShowDialog(this, m_endpoints, m_lds, m_gds, m_filters);

                if (endpoint != null)
                {
                    SetServer(endpoint);
                    RegistrationPanel.Initialize(m_gds, endpoint, m_configuration);
                    return;
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(Text + ": " + exception.Message);
            }
        }
예제 #4
0
        private void SelectServerButton_Click(object sender, EventArgs e)
        {
            try
            {
                var endpoint = new SelectServerDialog().ShowDialog(this, m_endpoints, m_lds, m_gds, m_filters);

                if (endpoint != null)
                {
                    SetServer(endpoint);
                    RegistrationPanel.Initialize(m_gds, m_server, endpoint, m_configuration);
                    SelectGdsButton.Visible = true;
                    return;
                }
            }
            catch (Exception ex)
            {
                Opc.Ua.Client.Controls.ExceptionDlg.Show(Text, ex);
            }
        }