3 import java
.io
.DataInputStream
;
4 import java
.io
.DataOutputStream
;
5 import java
.io
.IOException
;
6 import java
.util
.Arrays
;
7 import java
.util
.HashSet
;
11 import lejos
.remote
.nxt
.BTConnector
;
12 import lejos
.remote
.nxt
.NXTConnection
;
14 public abstract class BTMemory
extends Thread
{
15 private List
<String
> COLORSTOFIND
= Arrays
.asList(new String
[]{"Blue", "Red", "Yellow"});
16 private Set
<String
> colors
;
17 protected NXTConnection connection
;
18 protected DataOutputStream dataOutput
;
19 protected DataInputStream dataInput
;
22 colors
= new HashSet
<String
>();
26 public abstract void setup();
28 public void addColor(String c
){
32 public boolean finished(){
33 return colors
.equals(new HashSet
<String
>(COLORSTOFIND
));
40 if(dataInput
.available()>0){
41 LCDPrinter
.print(Character
.toChars(dataInput
.read()).toString());
44 } catch (IOException e
) {
45 // TODO Auto-generated catch block
50 public static BTMemory
getBTMemory(boolean master
, final String rovername
){
52 return new BTMemory(){
55 BTConnector btconnector
= new BTConnector();
56 connection
= btconnector
.connect(rovername
, NXTConnection
.RAW
);
57 dataInput
= connection
.openDataInputStream();
58 dataOutput
= connection
.openDataOutputStream();
61 } catch (IOException e
) {
67 return new BTMemory(){
70 BTConnector btconnector
= new BTConnector();
71 btconnector
.waitForConnection(60, NXTConnection
.RAW
);
72 dataInput
= connection
.openDataInputStream();
73 dataOutput
= connection
.openDataOutputStream();