Exemplo n.º 1
0
 /// <summary>
 /// Initializes and displays a modal dialog.
 /// </summary>
 public RegisteredDotNetOpcServer ShowDialog(RegisteredDotNetOpcServer registeredServer)
 {
     Initialize();
     m_registeredServer = registeredServer;
     if (registeredServer != null)
     {
         // select the .NET server.
         bool found = false;
         for (int ii = 0; ii < DotNetServerCB.Items.Count; ii++)
         {
             DotNetOpcServer server = DotNetServerCB.Items[ii] as DotNetOpcServer;
             if (server.CLSID == registeredServer.ServerCLSID)
             {
                 DotNetServerCB.SelectedIndex = ii;
                 found = true;
                 break;
             }
         }
         if (!found)
         {
             DotNetServerCB.SelectedIndex = DotNetServerCB.Items.Add(new DotNetOpcServer(registeredServer.ServerCLSID));
         }
         // select the wrapper process.
         found = false;
         for (int ii = 0; ii < WrapperCB.Items.Count; ii++)
         {
             DotNetOpcServerWrapper wrapper = WrapperCB.Items[ii] as DotNetOpcServerWrapper;
             if (wrapper.CLSID == registeredServer.WrapperCLSID)
             {
                 WrapperCB.SelectedIndex = ii;
                 found = true;
                 break;
             }
         }
         if (!found)
         {
             WrapperCB.SelectedIndex = WrapperCB.Items.Add(new DotNetOpcServerWrapper(registeredServer.WrapperCLSID));
         }
         // set the remaining parameters.
         ClsidTB.Text       = registeredServer.CLSID.ToString();
         ProgIdTB.Text      = registeredServer.ProgId;
         DescriptionTB.Text = registeredServer.Description;
         ParametersCTRL.Initialize(registeredServer);
     }
     if (DotNetServerCB.SelectedIndex == -1 && DotNetServerCB.Items.Count > 0)
     {
         DotNetServerCB.SelectedIndex = 0;
     }
     if (WrapperCB.SelectedIndex == -1 && WrapperCB.Items.Count > 0)
     {
         WrapperCB.SelectedIndex = 0;
     }
     ShowDialog();
     if (DialogResult != DialogResult.OK)
     {
         return(null);
     }
     return(m_registeredServer);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Initializes the controls.
        /// </summary>
        private void Initialize()
        {
            DotNetServerCB.Items.Clear();
            List <DotNetOpcServer> servers = DotNetOpcServer.EnumServers();

            foreach (DotNetOpcServer server in servers)
            {
                DotNetServerCB.Items.Add(server);
            }
            DotNetServerCB.SelectedIndex = -1;
            WrapperCB.Items.Clear();
            List <DotNetOpcServerWrapper> wrappers = DotNetOpcServerWrapper.EnumWrappers();

            foreach (DotNetOpcServerWrapper wrapper in wrappers)
            {
                WrapperCB.Items.Add(wrapper);
            }
            ParametersCTRL.Initialize(null);
        }
Exemplo n.º 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.AssignCLSID(Guid.NewGuid());
         }
         else
         {
             server.AssignCLSID(new Guid(ClsidTB.Text));
         }
         // set the prog id.
         if (String.IsNullOrEmpty(ProgIdTB.Text))
         {
             server.AssignProgId(((DotNetOpcServer)DotNetServerCB.SelectedItem).ProgId + ".Wrapped");
         }
         else
         {
             server.AssignProgId(ProgIdTB.Text);
         }
         // save the decryption.
         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);
     }
 }