WSDiscoveryForDspi Class

You can add probing support to your provider or subscribe for Hello and Bye messages from your provider by using the WSDiscoveryForDspi class.

Namespace: Microsoft.Rfid.WSDiscovery
Assembly: Microsoft.Rfid.WsDiscovery (in microsoft.rfid.wsdiscovery.dll)

Syntax

'Declaration

Public NotInheritable Class WSDiscoveryForDspi
    Implements IDisposable
public sealed class WSDiscoveryForDspi : IDisposable
public ref class WSDiscoveryForDspi sealed : IDisposable
public final class WSDiscoveryForDspi implements IDisposable
public final class WSDiscoveryForDspi implements IDisposable

Inheritance Hierarchy

System.Object
  Microsoft.Rfid.WSDiscovery.WSDiscoveryForDspi

Example

The following sample code shows how to use the WSDiscoveryForDspi class to probe for RFID devices and to subscribe for Hello, Bye, and ProbeMatch messages.

public class WsDiscoveryDeviceProvider : DeviceProvider
{
    …
    WSDiscoveryForDspi discoveryForDSPI = null;
    public override void Init(RfidProviderContext providerContext, string providerName, PropertyProfile providerInitParameters)
    {
        discoveryForDSPI = new WSDiscoveryForDspi(providerName);
    }

    public override void StartDiscovery()
    {
        discoveryForDSPI.StartDiscovery();
    }

    public override void StopDiscovery()
    {
        logger.Info("StopDiscovery called");
        discoveryForDSPI.StopDiscovery();
    }

    public override void Init(RfidProviderContext providerContext, string providerName, PropertyProfile providerInitParameters)
    {
        discoveryForDSPI = new WSDiscoveryForDspi(providerName);
        discoveryForDSPI.OnDeviceAdded += new EventHandler<WSDiscoveryEventArgs>(discoveryForDSPI_OnDeviceAdded);
        discoveryForDSPI.OnDeviceRemoved += new EventHandler<WSDiscoveryEventArgs>(discoveryForDSPI_OnDeviceRemoved);
        discoveryForDSPI.SearchCompleted += new AsyncCompletedEventHandler(discoveryForDSPI_SearchCompleted);
        …
    }

    void discoveryForDSPI_OnDeviceRemoved(object sender, WSDiscoveryEventArgs e)
    {
        //do nothing here
    }

    void discoveryForDSPI_OnDeviceAdded(object sender, WSDiscoveryEventArgs e)
    {
        if (DiscoveryEvent != null)
        {
            DiscoveryEventArgs args = discoveryForDSPI.ConvertToDspiDiscoveryEvent(e);
            DiscoveryEvent(this, args);
        }
    }

    public override void TriggerDiscovery()
    {
        discoveryForDSPI.SearchAsync();
    }

    private void discoveryForDSPI_SearchCompleted(object sender, AsyncCompletedEventArgs e)
    {
        RfidProviderContext.Current.Logger.Log(Level.Info, "search completed:\n {0}");
    }
}

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

Windows XP Home Edition, Windows XP Professional, Windows Server 2003, Windows Longhorn, and Windows 2000

Target Platforms

See Also

Reference

WSDiscoveryForDspi Members
Microsoft.Rfid.WSDiscovery Namespace