3 import lejos
.hardware
.Button
;
4 import lejos
.hardware
.ev3
.EV3
;
5 import lejos
.hardware
.ev3
.LocalEV3
;
6 import lejos
.hardware
.lcd
.Font
;
7 import lejos
.hardware
.lcd
.TextLCD
;
8 import lejos
.hardware
.motor
.EV3LargeRegulatedMotor
;
9 import lejos
.hardware
.port
.MotorPort
;
10 import lejos
.hardware
.sensor
.EV3ColorSensor
;
11 import lejos
.hardware
.sensor
.EV3GyroSensor
;
12 import lejos
.hardware
.sensor
.EV3TouchSensor
;
13 import lejos
.hardware
.sensor
.EV3UltrasonicSensor
;
14 import lejos
.hardware
.sensor
.NXTLightSensor
;
15 import lejos
.robotics
.SampleProvider
;
16 import lejos
.robotics
.subsumption
.Arbitrator
;
17 import nl
.ru
.des
.sensors
.BTController
;
18 import nl
.ru
.des
.sensors
.RemoteSensors
;
19 import nl
.ru
.des
.sensors
.SensorCollector
;
21 public class Marster
{
22 public static Arbitrator arb
;
24 @SuppressWarnings("resource")
25 public static void main(String
[] args
) {
26 EV3 brick
= LocalEV3
.get();
27 TextLCD tlcd
= brick
.getTextLCD(Font
.getSmallFont());
28 LCDPrinter
.startLCDPrinter(tlcd
);
29 System
.setOut(LCDPrinter
.getPrefixedPrintstream("out: ", tlcd
));
30 System
.setErr(LCDPrinter
.getPrefixedPrintstream("err: ", tlcd
));
32 LCDPrinter
.print("Loading keylistener...");
33 brick
.getKey("Escape").addKeyListener(new ButtonListener());
35 if(brick
.getName().equalsIgnoreCase("Rover6") || brick
.getName().equalsIgnoreCase("Rover8")){
36 LCDPrinter
.print("Starting as a slave...");
37 LCDPrinter
.print("Loading touch sensors...");
38 SampleProvider leftTouch
= new EV3TouchSensor(brick
.getPort("S1")).getTouchMode();
39 SampleProvider rightTouch
= new EV3TouchSensor(brick
.getPort("S2")).getTouchMode();
41 LCDPrinter
.print("Loading ultrasone sensor...");
42 SampleProvider frontUltra
= new EV3UltrasonicSensor(brick
.getPort("S3")).getDistanceMode();
44 LCDPrinter
.print("Loading color sensors...");
45 SampleProvider color
= new EV3ColorSensor(brick
.getPort("S4")).getColorIDMode();
46 RemoteSensors rs
= new RemoteSensors(leftTouch
, rightTouch
, frontUltra
, color
);
48 LCDPrinter
.print("Start BT... Press any key to commence");
49 Button
.waitForAnyEvent();
50 BTController
.startSlave();
51 rs
.start(BTController
.buf
);
53 LCDPrinter
.print("Starting as as master...");
54 LCDPrinter
.print("Loading motors...");
55 EV3LargeRegulatedMotor rightMotor
= new EV3LargeRegulatedMotor(MotorPort
.A
);
56 EV3LargeRegulatedMotor leftMotor
= new EV3LargeRegulatedMotor(MotorPort
.B
);
57 EV3LargeRegulatedMotor measMotor
= new EV3LargeRegulatedMotor(MotorPort
.C
);
58 // leftMotor.setSpeed(Constants.speed);
59 // rightMotor.setSpeed(Constants.speed);
60 // measMotor.setSpeed(100);
61 // rightMotor.setAcceleration(Constants.acceleration);
62 // leftMotor.setAcceleration(Constants.acceleration);
63 // measMotor.setAcceleration(100);
65 LCDPrinter
.print("Loading touch sensors...");
66 SampleProvider leftLight
= new NXTLightSensor(brick
.getPort("S1")).getRedMode();
67 SampleProvider rightLight
= new NXTLightSensor(brick
.getPort("S2")).getRedMode();
69 LCDPrinter
.print("Loading ultrasone sensor...");
70 SampleProvider backUltra
= new EV3UltrasonicSensor(brick
.getPort("S3")).getDistanceMode();
72 LCDPrinter
.print("Loading gyro sensor...");
73 SampleProvider gyro
= new EV3GyroSensor(brick
.getPort("S4")).getAngleAndRateMode();
75 LCDPrinter
.print("Start BT... Press any key to commence");
76 Button
.waitForAnyEvent();
77 BTController
.startMaster(brick
.getName() == "Rover5" ?
"Rover6" : "Rover8", new SensorCollector(backUltra
, leftLight
, rightLight
, gyro
));
78 LCDPrinter
.print("Finished loading");
79 Button
.waitForAnyPress();
81 // LinkedList<Mission> missions = Missions.getMissions(sensors, rightMotor, leftMotor, colorMemory);
82 // for(Mission m : missions){
83 // LCDPrinter.print("Start " + m.name + " mission...");
84 // a = new Arbitrator(m.behaviours);