-package nl.ru.des;
+package nl.ru.des.sensors;
import java.io.DataInputStream;
import java.io.DataOutputStream;
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();
}.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();
}
}
}
}.start();
- return buf;
}
}
\ No newline at end of file