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