bt working, different behaviours
[des2015.git] / dsl / runtime / src / nl / ru / des / Marster.java
1 package nl.ru.des;
2
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;
22
23 public class Marster {
24 public static Arbitrator arb;
25
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));
33
34 LCDPrinter.print("Loading keylistener...");
35 brick.getKey("Escape").addKeyListener(new ButtonListener());
36
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();
43
44 LCDPrinter.print("Loading ultrasone sensor...");
45 SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
46
47 LCDPrinter.print("Loading color sensors...");
48 SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode();
49 RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
50
51 BTController.startSlave();
52 rs.start(BTController.buf);
53 } else {
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);
68
69 LCDPrinter.print("Loading touch sensors...");
70 SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
71 SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
72
73 LCDPrinter.print("Loading ultrasone sensor...");
74 SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
75
76 LCDPrinter.print("Loading gyro sensor...");
77 SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode();
78
79 BTController.startMaster(slave, new SensorCollector(backUltra, leftLight, rightLight, gyro));
80 LCDPrinter.print("Finished loading");
81 Button.waitForAnyPress();
82 // Arbitrator a;
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);
87 // a.start();
88 // }
89 }
90 }
91 }