Implementing colors collection and mission exit
[des2015.git] / dsl / runtime / src / nl / ru / des / MarsRover.java
index c4b3ddf..41a5f90 100644 (file)
@@ -1,5 +1,7 @@
 package nl.ru.des;
 
+import java.util.LinkedList;
+
 import lejos.hardware.ev3.EV3;
 import lejos.hardware.ev3.LocalEV3;
 import lejos.hardware.lcd.Font;
@@ -14,6 +16,7 @@ import lejos.robotics.subsumption.Arbitrator;
 
 public class MarsRover {
        public static final float SAMPLERATE = 100;
+       public static LinkedList<Mission> missions = new LinkedList<Mission>();
        
        @SuppressWarnings("resource")
        public static void main(String[] args) {
@@ -51,10 +54,19 @@ public class MarsRover {
                ColorMemory colorMemory = new ColorMemory(color);
                
                Arbitrator a;
-               for(Mission m : Missions.getMissions(sensors, rightMotor, leftMotor, colorMemory)){
+               missions = Missions.getMissions(sensors, rightMotor, leftMotor, colorMemory);
+               for(Mission m : missions){
                        LCDPrinter.print("Start " + m.name + " mission...");
                        a = new Arbitrator(m.behaviours);
+                       m.SetArbitrator(a);
                        a.start();
                }
        }
+       
+       public static void FinishMission(String missionName){
+               Mission m = missions.stream().filter(o -> o.name.equalsIgnoreCase(missionName)).findFirst().get();
+               if(m != null){
+                       m.arbitrator.stop();
+               }
+       }
 }
\ No newline at end of file