b31bb8737f818b0d19e38e6960568f1fa3322797
[des2015.git] / dsl / runtime / src / nl / ru / des / Marster.java
1 package nl.ru.des;
2
3 import java.util.Queue;
4
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;
19
20 public class Marster {
21 public static Arbitrator arb;
22
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));
30
31 LCDPrinter.print("Loading keylistener...");
32 brick.getKey("Escape").addKeyListener(new ButtonListener());
33
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();
39
40 LCDPrinter.print("Loading ultrasone sensor...");
41 SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
42
43 LCDPrinter.print("Loading color sensors...");
44 SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode();
45 RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
46
47 LCDPrinter.print("Start BT...");
48 Queue<String> msgs = BTController.startSlave();
49 rs.start(msgs);
50 } else {
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);
62
63 LCDPrinter.print("Loading touch sensors...");
64 SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
65 SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
66
67 LCDPrinter.print("Loading ultrasone sensor...");
68 SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
69
70 LCDPrinter.print("Loading gyro sensor...");
71 SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode();
72
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();
77 // Arbitrator a;
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);
82 // a.start();
83 // }
84 }
85 }
86 }