X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2Fsensors%2FBTController.java;h=0f1ec0ff861d6c96e5032ffbf38c798ab0cab1e2;hb=8ac11d4775c780e307727b0e5dc865cf64517a59;hp=206552eee5827b4e56fa8a9686f890b7e8078f78;hpb=426ca40778af548128b5d5f37705fffcf1cc9c7b;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/sensors/BTController.java b/dsl/runtime/src/nl/ru/des/sensors/BTController.java index 206552e..0f1ec0f 100644 --- a/dsl/runtime/src/nl/ru/des/sensors/BTController.java +++ b/dsl/runtime/src/nl/ru/des/sensors/BTController.java @@ -6,17 +6,25 @@ import java.io.IOException; 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 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() { @@ -41,8 +49,13 @@ public class BTController{ } 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(); @@ -53,8 +66,9 @@ public class BTController{ try { dataOut.write(buf.poll().getBytes()); dataOut.flush(); - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); + System.exit(0); } } Thread.yield();