GXDN: Gurux Developer Network
GuruxSNMP component
This guide shows how to use Gurux SNMP component (GXSNMP) in the Visual Studio .NET environment using the C# language. Source code is available at sourceforge.net
Adding GXSNMP component to the project
  1. Start Visual Studio .NET
  2. Open the project where you want to add the GXSNMP component, or create a new one
  3. Open Toolbox




  4. Note: If the Gurux tab is not shown in the Toolbox,
    you can implement it manually

  5. Under Gurux tab, select the component, and drag and drop it on the form
  6. Allow the use of any version of the media component:
    • Select the component.
    • In Solution Explorer view, in the References folder, select Gurux.GuruxSNMP.
    • In Properties view, set Specific Version to False.



Using components with .NET
You can either drag the component to the form, or create it dynamically.

Creating component dynamically
To create component in runtime, select Add Reference in the Project menu. The dialog shows available components, select the one(s) to use (in this case GXSNMP component). Click OK to finish. The following example shows how to create a GXSNMP component.
using Gurux.GuruxSNMP;
//Create new component
GXSNMP GXSNMP1 = new GXSNMPClass();
		
Setting Media Properties
You can either select appropriate settings in the Properties dialog or edit the settings programmatically.
//Set server port and TCP/IP address.
GXSNMP1.HostPort = 1234;
GXSNMP1.HostName = "Localhost";
GXSNMP1.Connect();
GXSNMPPacket pack = new GXSNMPPacket();
pack.Command = GX_SNMP_COMMAND_GET;
pack.OID = "1.3.6.1.2.1.1.1.0";
GXSNMP1.Send(pack, "localhost");
Sending and receiving packets
All data is sent asynchronously. Response is received as a Received event message.
Receiving event messages
To receive event sent by the GXSNMP component, select the component by right-clicking it on the form and select Properties. Create handlers for OnError and OnReceived methods.
To create a handler, select an event and enter name for the handler. In the following example, received data is converted to string and stored.
private void gxsnmp1_OnReceived(object sender, Gurux.GuruxSNMP.GXSNMPPacket SNMPPacket, string SenderInfo)
{
    //Update data to the edit box.
    foreach(Gurux.GuruxSNMP.GXSNMPDataItem it in SNMPPacket.DataItems)
    {
        ReceiveDataText.Text += it.Data;
    }
    //Update Sender Information to the edit box.
    SenderText.Text = SenderInfo;
}

private void gxSNMP1_OnError(object sender, string ErrorInfo)
{
    MessageBox.Show(sender.ToString());
}
Error Handling
It's very important to consider error handling when sending and receiving data. The connection can drop down, or something else unexpected may happen. If something unwanted happens, GXSNMP component returns error. The following example shows how to handle errors in .NET.
try
{
    object data = Convert.ChangeType("Hello", System.TypeCode.Object);
    string receiver = null;
    GXSNMP1.Send(ref data, ref receiver);
}
catch(Exception ex)
{
    MessageBox.Show(ex.ToString());
}
Using the components from development environment

Using from .NET | Using from Visual Basic | Using from C++