import java.util.LinkedList;
import java.util.Queue;
+import lejos.hardware.Button;
import lejos.remote.nxt.BTConnector;
import lejos.remote.nxt.NXTConnection;
public class BTController{
public static Queue<String> buf;
- public static DataInputStream dataIn;
- public static DataOutputStream dataOut;
+ private static DataInputStream dataIn;
+ private static DataOutputStream dataOut;
+ private static NXTConnection conn;
+ private static BTConnector btconnector;
public static void startMaster(final String slave, final MessageHandler sh) {
- BTConnector btconnector = new BTConnector();
- NXTConnection conn = btconnector.connect(slave, NXTConnection.RAW);
+ System.out.println("Start BT... Press any key to commence");
+ Button.waitForAnyEvent();
+ btconnector = new BTConnector();
+ while(conn == null){
+ System.out.println("Connecting to " + slave);
+ conn = btconnector.connect(slave, NXTConnection.RAW);
+ }
dataOut = conn.openDataOutputStream();
dataIn = conn.openDataInputStream();
new Thread() {
}
public static void startSlave() {
- BTConnector btconnector = new BTConnector();
- NXTConnection conn = btconnector.waitForConnection(60000, NXTConnection.RAW);
+ System.out.println("Start BT... Press any key to commence");
+ Button.waitForAnyEvent();
+ btconnector = new BTConnector();
+ while(conn == null){
+ System.out.println("Waiting for the master...");
+ conn = btconnector.waitForConnection(60000, NXTConnection.RAW);
+ }
dataIn = conn.openDataInputStream();
dataOut = conn.openDataOutputStream();
buf = new LinkedList<String>();
try {
dataOut.write(buf.poll().getBytes());
dataOut.flush();
- } catch (IOException e) {
+ } catch (Exception e) {
e.printStackTrace();
+ System.exit(0);
}
}
Thread.yield();