started with new rover, bt still not worknig:(
[des2015.git] / dsl / runtime / src / nl / ru / des / Marster.java
diff --git a/dsl/runtime/src/nl/ru/des/Marster.java b/dsl/runtime/src/nl/ru/des/Marster.java
new file mode 100644 (file)
index 0000000..b31bb87
--- /dev/null
@@ -0,0 +1,86 @@
+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