update, working bt and final schedule
[des2015.git] / dsl / runtime / src / nl / ru / des / sensors / BTController.java
@@ -1,4 +1,4 @@
-package nl.ru.des;
+package nl.ru.des.sensors;
 
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
@@ -10,17 +10,22 @@ 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;
+       
        public static void startMaster(final String slave, final MessageHandler sh) {
                BTConnector btconnector = new BTConnector();
                NXTConnection conn = btconnector.connect(slave, NXTConnection.RAW);
-               final DataInputStream dataInput = conn.openDataInputStream();
+               dataOut = conn.openDataOutputStream();
+               dataIn = conn.openDataInputStream();
                new Thread() {
                        @Override
                        public void run() {
                                StringBuilder sb = new StringBuilder();
                                while (true) {
                                        try {
-                                               int c = dataInput.readUnsignedByte();
+                                               int c = dataIn.readUnsignedByte();
                                                if (c == '\n') {
                                                        sh.handleMessage(sb.toString());
                                                        sb = new StringBuilder();
@@ -35,18 +40,19 @@ public class BTController{
                }.start();
        }
        
-       public static Queue<String> startSlave() {
+       public static void startSlave() {
                BTConnector btconnector = new BTConnector();
                NXTConnection conn = btconnector.waitForConnection(60000, NXTConnection.RAW);
-               final DataOutputStream dataOutput = conn.openDataOutputStream();
-               final Queue<String> buf = new LinkedList<String>();
+               dataIn = conn.openDataInputStream();
+               dataOut = conn.openDataOutputStream();
+               buf = new LinkedList<String>();
                new Thread(){
                        @Override public void run(){
                                while (true) {
                                        if (!buf.isEmpty()) {
                                                try {
-                                                       dataOutput.write(buf.poll().getBytes());
-                                                       dataOutput.flush();
+                                                       dataOut.write(buf.poll().getBytes());
+                                                       dataOut.flush();
                                                } catch (IOException e) {
                                                        e.printStackTrace();
                                                }
@@ -55,6 +61,5 @@ public class BTController{
                                }
                        }
                }.start();
-               return buf;
        }
 }
\ No newline at end of file