/// <summary>
        /// Imports a list of servers from a file.
        /// </summary>
        public static void Import(string filepath, bool register)
        {
            Export.ListOfRegisteredServers list = new Opc.ConfigTool.Export.ListOfRegisteredServers();

            // read from file.
            XmlTextReader reader     = new XmlTextReader(filepath);
            XmlSerializer serializer = new XmlSerializer(typeof(Export.ListOfRegisteredServers), ConfigUtils.ConfigToolSchemaUri);

            Export.ListOfRegisteredServers servers = (Export.ListOfRegisteredServers)serializer.Deserialize(reader);
            reader.Close();

            if (ConfigUtils.IsEmpty(servers.Server))
            {
                return;
            }

            // registers the servers.
            for (int ii = 0; ii < servers.Server.Length; ii++)
            {
                RegisteredDotNetOpcServer server = Import(servers.Server[ii]);

                if (register)
                {
                    server.Register();
                }
                else
                {
                    server.Unregister();
                }
            }
        }
예제 #2
0
        private void OkBTN_Click(object sender, EventArgs e)
        {
            try
            {
                RegisteredDotNetOpcServer server = new RegisteredDotNetOpcServer();

                // set the .NET server.
                if (DotNetServerCB.SelectedIndex == -1)
                {
                    throw new ApplicationException("No .NET OPC server selected.");
                }

                server.ServerClsid = ((DotNetOpcServer)DotNetServerCB.SelectedItem).Clsid;

                // set the wrapper.
                if (WrapperCB.SelectedIndex == -1)
                {
                    throw new ApplicationException("No wrapper process selected.");
                }

                server.WrapperClsid = ((DotNetOpcServerWrapper)WrapperCB.SelectedItem).Clsid;

                // set the clsid.
                if (String.IsNullOrEmpty(ClsidTB.Text))
                {
                    server.Clsid = Guid.NewGuid();
                }
                else
                {
                    server.Clsid = new Guid(ClsidTB.Text);
                }

                // set the prog id.
                if (String.IsNullOrEmpty(ProgIdTB.Text))
                {
                    server.ProgId = ((DotNetOpcServer)DotNetServerCB.SelectedItem).ProgId + ".Wrapped";
                }
                else
                {
                    server.ProgId = ProgIdTB.Text;
                }

                // save the decription.
                server.Description = DescriptionTB.Text;

                // save the parameters.
                Dictionary <string, string> parameters = ParametersCTRL.GetParameters();

                if (parameters != null)
                {
                    foreach (KeyValuePair <string, string> entry in parameters)
                    {
                        server.Parameters[entry.Key] = entry.Value;
                    }
                }

                // remove existing registration.
                if (m_registeredServer != null)
                {
                    m_registeredServer.Unregister();
                }

                // update registry.
                server.Register();

                m_registeredServer = server;

                // close dialog.
                DialogResult = DialogResult.OK;
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }
예제 #3
0
        private void OkBTN_Click(object sender, EventArgs e)
        {
            try
            {
                RegisteredDotNetOpcServer server = new RegisteredDotNetOpcServer();

                // set the .NET server.
                if (DotNetServerCB.SelectedIndex == -1)
                {
                    throw new ApplicationException("No .NET OPC server selected.");
                }

                server.ServerClsid = ((DotNetOpcServer)DotNetServerCB.SelectedItem).Clsid;

                // set the wrapper.
                if (WrapperCB.SelectedIndex == -1)
                {
                    throw new ApplicationException("No wrapper process selected.");
                }

                server.WrapperClsid = ((DotNetOpcServerWrapper)WrapperCB.SelectedItem).Clsid;

                // set the clsid.
                if (String.IsNullOrEmpty(ClsidTB.Text))
                {
                    server.Clsid = Guid.NewGuid();
                }
                else
                {
                    server.Clsid = new Guid(ClsidTB.Text);
                }

                // set the prog id.
                if (String.IsNullOrEmpty(ProgIdTB.Text))
                {
                    server.ProgId = ((DotNetOpcServer)DotNetServerCB.SelectedItem).ProgId + ".Wrapped";
                }
                else
                {
                    server.ProgId = ProgIdTB.Text;
                }

                // save the decription.
                server.Description = DescriptionTB.Text;

                // save the parameters.
                Dictionary<string,string> parameters = ParametersCTRL.GetParameters();

                if (parameters != null)
                {
                    foreach (KeyValuePair<string,string> entry in parameters)
                    {
                        server.Parameters[entry.Key] = entry.Value;
                    }
                }

                // remove existing registration.
                if (m_registeredServer != null)
                {
                    m_registeredServer.Unregister();
                }

                // update registry.
                server.Register();

                m_registeredServer = server;

                // close dialog.
                DialogResult = DialogResult.OK;
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }