removed LCD class
[des2015.git] / dsl / runtime / src / nl / ru / des / Marster.java
1 package nl.ru.des;
2
3 import java.io.PrintStream;
4 import java.util.LinkedList;
5 import java.util.Random;
6
7 import lejos.hardware.Button;
8 import lejos.hardware.Sound;
9 import lejos.hardware.ev3.EV3;
10 import lejos.hardware.ev3.LocalEV3;
11 import lejos.hardware.lcd.Font;
12 import lejos.hardware.lcd.LCDOutputStream;
13 import lejos.hardware.motor.EV3LargeRegulatedMotor;
14 import lejos.hardware.motor.EV3MediumRegulatedMotor;
15 import lejos.hardware.port.MotorPort;
16 import lejos.hardware.sensor.EV3ColorSensor;
17 import lejos.hardware.sensor.EV3GyroSensor;
18 import lejos.hardware.sensor.EV3TouchSensor;
19 import lejos.hardware.sensor.EV3UltrasonicSensor;
20 import lejos.hardware.sensor.NXTLightSensor;
21 import lejos.robotics.RegulatedMotor;
22 import lejos.robotics.SampleProvider;
23 import nl.ru.des.sensors.BTController;
24 import nl.ru.des.sensors.RemoteSensors;
25 import nl.ru.des.sensors.SensorCollector;
26
27 public class Marster {
28 public static Arbitrator arb;
29 public static Random random;
30
31 @SuppressWarnings("resource")
32 public static void main(String[] args) {
33 EV3 brick = LocalEV3.get();
34 PrintStream lcd = new PrintStream(new LCDOutputStream(brick.getTextLCD(Font.getSmallFont())));
35 System.setOut(lcd);
36 System.setErr(lcd);
37
38 System.out.println("Loading keylistener...");
39 brick.getKey("Escape").addKeyListener(new ButtonListener());
40
41 if(brick.getName().equalsIgnoreCase("Rover6") || brick.getName().equalsIgnoreCase("Rover8")){
42 System.out.println("Starting as a slave...");
43 System.out.println("My name is " + brick.getName());
44 System.out.println("Loading touch sensors...");
45 SampleProvider leftTouch = new EV3TouchSensor(brick.getPort("S1")).getTouchMode();
46 SampleProvider rightTouch = new EV3TouchSensor(brick.getPort("S2")).getTouchMode();
47
48 System.out.println("Loading ultrasone sensor...");
49 SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
50
51 System.out.println("Loading color sensors...");
52 SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode();
53 RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
54
55 BTController.startSlave();
56 try {
57 rs.start(BTController.buf);
58 } catch (Exception e){
59 System.exit(0);
60 }
61 } else {
62 String slave = brick.getName().equalsIgnoreCase("Rover5") ? "Rover6" : "Rover8";
63 System.out.println("Starting as as master...");
64 System.out.println("My name is " + brick.getName());
65 System.out.println("Going to connect to: " + slave);
66 System.out.println("Loading motors...");
67 RegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A);
68 RegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B);
69 RegulatedMotor measMotor = new EV3MediumRegulatedMotor(MotorPort.C);
70 leftMotor.setSpeed(Constants.speed);
71 rightMotor.setSpeed(Constants.speed);
72 measMotor.setSpeed(50);
73 rightMotor.setAcceleration(Constants.acceleration);
74 leftMotor.setAcceleration(Constants.acceleration);
75 measMotor.setAcceleration(50);
76
77 System.out.println("Loading touch sensors...");
78 SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
79 SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
80
81 System.out.println("Loading ultrasone sensor...");
82 SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
83
84 System.out.println("Loading gyro sensor...");
85 SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, new EV3GyroSensor(brick.getPort("S4")));
86
87 BTController.startMaster(slave, sc);
88 System.out.println("Finished loading");
89 sc.calibrate();
90 LinkedList<Mission> missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor);
91 random = new Random();
92 System.out.println("Press any button to start");
93 Button.waitForAnyEvent();
94 for(Mission m : missions){
95 System.out.println("Start " + m.name + " mission...");
96 arb = new Arbitrator(m.behaviours);
97 sc.reset();
98 arb.start();
99 Sound.buzz();
100 System.out.println(m.name + " finished!!1one!");
101 }
102 System.exit(0);
103 }
104 }
105 }