1 package motej.demos.common;
2
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
5
6 import motej.Mote;
7 import motej.MoteFinder;
8 import motej.MoteFinderListener;
9
10 public class SimpleMoteFinder implements MoteFinderListener {
11
12 private Logger log = LoggerFactory.getLogger(SimpleMoteFinder.class);
13 private MoteFinder finder;
14 private Object lock = new Object();
15 private Mote mote;
16
17 public void moteFound(Mote mote) {
18 log.info("SimpleMoteFinder received notification of a found mote.");
19 this.mote = mote;
20 synchronized(lock) {
21 lock.notifyAll();
22 }
23 }
24
25 public Mote findMote() {
26 if (finder == null) {
27 finder = MoteFinder.getMoteFinder();
28 finder.addMoteFinderListener(this);
29 }
30 finder.startDiscovery();
31 try {
32 synchronized(lock) {
33 lock.wait();
34 }
35 } catch (InterruptedException ex) {
36 log.error(ex.getMessage(), ex);
37 }
38 return mote;
39 }
40
41 }