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