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  }