NetworkWatcher doesn't lunch events

Hello, I’,m starting witn Pc SDk for Rw5.13, and I’m doing the samples that you can find on manual.

So I did the sample until the networkwatcher. My application compiles with no problem. But the networkwatch never lunchs the event OnFound (found controller). I testing it on Virtual controller (RobotStudio 5.13).

Here is my code:

private void Form1_Load(object sender, EventArgs e)

{

this.scanner = new NetworkScanner();

this.scanner.Scan();

ControllerInfoCollection controllers = scanner.Controllers;

ListViewItem item = null;

foreach (ControllerInfo controllerinfo in controllers)

{

item = new ListViewItem(controllerinfo.IPAddress.ToString());

item.SubItems.Add(controllerinfo.Id);

item.SubItems.Add(controllerinfo.Availability.ToString());

item.SubItems.Add(controllerinfo.IsVirtual.ToString());

item.SubItems.Add(controllerinfo.SystemName);

item.SubItems.Add(controllerinfo.Version.ToString());

item.SubItems.Add(controllerinfo.ControllerName);

listView1.Items.Add(item);

}

this.networkwacther = new NetworkWatcher(controllers);

networkwacther.Found += new EventHandler(HandleFoundEvent);

networkwacther.Lost += new EventHandler(networkwacther_Lost);

}

private void HandleFoundEvent (object sender, NetworkWatcherEventArgs e)

{

//throw new Exception(“The method or operation is not implemented.”);

//I put a stop here
Invoke(new EventHandler(AddControllerToListView), new Object { this, e });
}

What’s happen?.

Thanks
/Jorge

I built similiar code,.. but I used a “real” robot.. and the “found” worked… BUT, it took almost a whole minute(or more) for the “found” event to fire…

it took about 30-45 seconds for the “lost” event to fire

Does anyone know Why?, it takes so long for the lost and/or found events to fire?
…anyone no how to speed this up ?.

code below

public void StartNetwatcher()

{

try

{

this.watcher = new NetworkWatcher(scanner.Controllers);

this.watcher.Found += new EventHandler(HandleFoundEvent);

this.watcher.Lost += new EventHandler(HandleLostEvent);

this.watcher.EnableRaisingEvents = true;

}

catch { }

}

public void StopNetwatcher()

{

try

{

this.watcher.EnableRaisingEvents = false;

this.watcher.Found -= new EventHandler(HandleFoundEvent);

this.watcher.Lost -= new EventHandler(HandleLostEvent);

this.watcher.Dispose();

this.watcher = null;

}

catch { }

}

void HandleFoundEvent(object sender, NetworkWatcherEventArgs e)

{

this.Invoke(new EventHandler(ControllerFound), new Object { this, e });

}

void HandleLostEvent(object sender, NetworkWatcherEventArgs e)

{

this.Invoke(new EventHandler(ControllerLost), new Object { this, e });

}

a__

a__

a__

private void ControllerFound(object sender, NetworkWatcherEventArgs e)

{

ControllerInfo controllerInfo = e.Controller;

if (e.Controller.IPAddress.ToString() == this.RobotIPaddress)

{

this.Startup();

}

}

private void ControllerLost(object sender, NetworkWatcherEventArgs e)

{

ControllerInfo controllerInfo = e.Controller;

if (e.Controller.IPAddress.ToString() == this.RobotIPaddress)

{

this.ShutDown();

}

}