bt working, different behaviours
[des2015.git] / dsl / runtime / src / nl / ru / des / sensors / BTController.java
index 206552e..062fa61 100644 (file)
@@ -6,17 +6,26 @@ 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;
+import nl.ru.des.LCDPrinter;
 
 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);
+               LCDPrinter.print("Start BT... Press any key to commence");
+               Button.waitForAnyEvent();
+               btconnector = new BTConnector();
+               while(conn == null){
+                       LCDPrinter.print("Connecting to " + slave);
+                       conn = btconnector.connect(slave, NXTConnection.RAW);
+               }
                dataOut = conn.openDataOutputStream();
                dataIn = conn.openDataInputStream();
                new Thread() {
@@ -41,8 +50,13 @@ public class BTController{
        }
        
        public static void startSlave() {
-               BTConnector btconnector = new BTConnector();
-               NXTConnection conn = btconnector.waitForConnection(60000, NXTConnection.RAW);
+               LCDPrinter.print("Start BT... Press any key to commence");
+               Button.waitForAnyEvent();
+               btconnector = new BTConnector();                
+               while(conn == null){
+                       LCDPrinter.print("Waiting for the master...");
+                       conn = btconnector.waitForConnection(60000, NXTConnection.RAW);
+               }
                dataIn = conn.openDataInputStream();
                dataOut = conn.openDataOutputStream();
                buf = new LinkedList<String>();