Implemented finding park space
[des2015.git] / dsl / runtime / src / nl / ru / des / Marster.java
index ad31306..83bc184 100644 (file)
@@ -1,7 +1,13 @@
 package nl.ru.des;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.LinkedList;
+import java.util.Random;
 
+import lejos.hardware.Sound;
 import lejos.hardware.ev3.EV3;
 import lejos.hardware.ev3.LocalEV3;
 import lejos.hardware.lcd.Font;
@@ -16,13 +22,13 @@ import lejos.hardware.sensor.EV3UltrasonicSensor;
 import lejos.hardware.sensor.NXTLightSensor;
 import lejos.robotics.RegulatedMotor;
 import lejos.robotics.SampleProvider;
-import lejos.robotics.subsumption.Arbitrator;
 import nl.ru.des.sensors.BTController;
 import nl.ru.des.sensors.RemoteSensors;
 import nl.ru.des.sensors.SensorCollector;
 
 public class Marster {
        public static Arbitrator arb;
+       public static Random random;
        
        @SuppressWarnings("resource")
        public static void main(String[] args) {
@@ -52,6 +58,18 @@ public class Marster {
                        BTController.startSlave();
                        rs.start(BTController.buf);
                } else {
+//                     try {
+//                             InputStream inp = Marster.class.getResourceAsStream("nl/ru/des/sound/rick.wav");
+//                             FileOutputStream out = new FileOutputStream("rick.wav");
+//                             byte buffer[] = new byte[2048];
+//                             while(inp.read(buffer)>0){
+//                                     out.write(buffer);
+//                             }
+//                             inp.close();
+//                             out.close();
+//                     } catch (IOException e) {
+//                             e.printStackTrace();
+//                     }
                        String slave = brick.getName().equalsIgnoreCase("Rover5") ? "Rover6" : "Rover8";
                        LCDPrinter.print("Starting as as master...");
                        LCDPrinter.print("My name is " + brick.getName());
@@ -62,11 +80,11 @@ public class Marster {
                        RegulatedMotor measMotor = new EV3MediumRegulatedMotor(MotorPort.C);
                        leftMotor.setSpeed(Constants.speed);
                        rightMotor.setSpeed(Constants.speed);
-                       measMotor.setSpeed(100);
+                       measMotor.setSpeed(50);
                        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();
@@ -75,17 +93,20 @@ public class Marster {
                        SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
                        
                        LCDPrinter.print("Loading gyro sensor...");
-                       SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode();
+                       SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, new EV3GyroSensor(brick.getPort("S4")));
 
-                       SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, gyro);
                        BTController.startMaster(slave, sc);
                        LCDPrinter.print("Finished loading");
                        LinkedList<Mission> missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor);
+                       random = new Random();
                        for(Mission m : missions){
                                LCDPrinter.print("Start " + m.name + " mission...");
                                arb = new Arbitrator(m.behaviours);
+                               sc.reset();
                                arb.start();
+                               LCDPrinter.print(m.name + " finished!!1one!");
                        }
+//                     Sound.playSample(new File("rick.wav"));
                }
        }
 }
\ No newline at end of file