+package nl.ru.des;
+
+import java.util.Queue;
+
+import lejos.hardware.Button;
+import lejos.hardware.ev3.EV3;
+import lejos.hardware.ev3.LocalEV3;
+import lejos.hardware.lcd.Font;
+import lejos.hardware.lcd.TextLCD;
+import lejos.hardware.motor.EV3LargeRegulatedMotor;
+import lejos.hardware.port.MotorPort;
+import lejos.hardware.sensor.EV3ColorSensor;
+import lejos.hardware.sensor.EV3GyroSensor;
+import lejos.hardware.sensor.EV3TouchSensor;
+import lejos.hardware.sensor.EV3UltrasonicSensor;
+import lejos.hardware.sensor.NXTLightSensor;
+import lejos.robotics.SampleProvider;
+import lejos.robotics.subsumption.Arbitrator;
+
+public class Marster {
+ public static Arbitrator arb;
+
+ @SuppressWarnings("resource")
+ public static void main(String[] args) {
+ EV3 brick = LocalEV3.get();
+ TextLCD tlcd = brick.getTextLCD(Font.getSmallFont());
+ LCDPrinter.startLCDPrinter(tlcd);
+ System.setOut(LCDPrinter.getPrefixedPrintstream("out: ", tlcd));
+ System.setErr(LCDPrinter.getPrefixedPrintstream("err: ", tlcd));
+
+ LCDPrinter.print("Loading keylistener...");
+ brick.getKey("Escape").addKeyListener(new ButtonListener());
+
+ if(brick.getName().equalsIgnoreCase("Rover6") || brick.getName().equalsIgnoreCase("Rover8")){
+ LCDPrinter.print("Starting as a slave...");
+ LCDPrinter.print("Loading touch sensors...");
+ SampleProvider leftTouch = new EV3TouchSensor(brick.getPort("S1")).getTouchMode();
+ SampleProvider rightTouch = new EV3TouchSensor(brick.getPort("S2")).getTouchMode();
+
+ LCDPrinter.print("Loading ultrasone sensor...");
+ SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
+
+ LCDPrinter.print("Loading color sensors...");
+ SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode();
+ RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
+
+ LCDPrinter.print("Start BT...");
+ Queue<String> msgs = BTController.startSlave();
+ rs.start(msgs);
+ } else {
+ LCDPrinter.print("Starting as as master...");
+ LCDPrinter.print("Loading motors...");
+ EV3LargeRegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A);
+ EV3LargeRegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B);
+ EV3LargeRegulatedMotor measMotor = new EV3LargeRegulatedMotor(MotorPort.C);
+// leftMotor.setSpeed(Constants.speed);
+// rightMotor.setSpeed(Constants.speed);
+// measMotor.setSpeed(100);
+// rightMotor.setAcceleration(Constants.acceleration);
+// leftMotor.setAcceleration(Constants.acceleration);
+// measMotor.setAcceleration(100);
+
+ LCDPrinter.print("Loading touch sensors...");
+ SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
+ SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
+
+ LCDPrinter.print("Loading ultrasone sensor...");
+ SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
+
+ LCDPrinter.print("Loading gyro sensor...");
+ SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode();
+
+ LCDPrinter.print("Start BT...");
+ BTController.startMaster(brick.getName() == "Rover5" ? "Rover6" : "Rover8", new SensorCollector(backUltra, leftLight, rightLight, gyro));
+ LCDPrinter.print("Finished loading");
+ Button.waitForAnyPress();
+// Arbitrator a;
+// LinkedList<Mission> missions = Missions.getMissions(sensors, rightMotor, leftMotor, colorMemory);
+// for(Mission m : missions){
+// LCDPrinter.print("Start " + m.name + " mission...");
+// a = new Arbitrator(m.behaviours);
+// a.start();
+// }
+ }
+ }
+}
\ No newline at end of file