OPC .Net client server toolkits for OPC DA, HDA, AE, XML-DA Advanced
OPC
Solutions    
OPC .NET Components and Solutions      OPC .Net client server toolkits for OPC DA, HDA, AE, XML-DA
Home | Sign In | My Account | Shopping Cart  
Customer Service | Search  

 
 


Search

Help & Info
 Contact Us
 About Us
 Our Services
 Our Customers
 FAQs
 
 OPC Error   Lookup 

 ASP.NET   Sample Clients 

 XML DA Sample   Servers 

 OPC UA Info

 


* privacy and security Guaranteed  
Background Server Access Sample Application Login  

Background Server Access Sample Code

The following C# code is a complete Windows application that shows the current values of three items, two simple values and one array value.
The sample is a high quality application that uses the OPCDA.NET background server access classes. It catches and reports all possibly occuring server handling errors.
All server access is done in background threads. The application doesn't become unresponsive due to server access issues.

using System;
using System.Windows.Forms;
using OPCDA.NET;

namespace  Sample
{
   public partial class Form1 : Form
   {
      public Form1()
      {
         InitializeComponent();
      }

      BGServer BGSrv = null;

      private void Form1_Load( object sender, EventArgse)
      {
         BGSrv = new BGServer(this);
         BGSrv.GeneralError += new OnBGGeneralError(srv_GeneralError);
         BGSrv.Connect("Advosol.SimDAServer.1", null, new OnBGSrvConnected(OnServerConnected));
      }

      private void OnServerConnected(BGException ex, object tag)
      {
         if (ex != null) // unsuccessful
            MessageBox.Show(ex.Message, "Server Connect Error");
         else // successfully connected, create a databind object
            BGSrv.AddDataBind( "DB1", 500, null, new OnBGSrvAddDataBind( OnNewdataBind ) );
      }

      private void OnNewdataBind( BGException ex, BGDataBind db1, objecttag )
      {
         if( ex != null ) // unsuccessful
            MessageBox.Show(ex.Message, "DataBind Error");
         else // DataBind successfully created
         {
            // Bind controls to OPC items.
            db1.Subscribe( "SimulatedData.Signal", this.checkBox1, null, null );
            db1.Subscribe( "Dynamic.Analog Types.Double[]", this.listBox1, 3, new DataBindFormat("F2"), null, null );
            db1.Subscribe( "SimulatedData.Sine", this.textBox1, null, null );
         }
      }

      private void srv_GeneralError(string info, BGException ex, object tag)
      {
         string txt;
         if ((tag != null) && (tag.GetType() == typeof(string))) 
            txt = info + " (" + tag.ToString() + ") : " + ex.Message;
         else    // no or unknown data in tag
            txt = info + " : " + ex.Message;
         MessageBox.Show( txt, "Server Access Error" );
      }
 
      private void btnClose_Click(object sender, EventArgs e)
      {
         BGSrv.Dispose();
         Close();
      }
   }
}
home | contact us | return policy | privacy policy | security policy | Copyright © 2008 Advosol Inc. All Rights Reserved.