X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2FMarsRover.java;h=41a5f902abc6124a8a12ae1ec6d49c775b95d8c0;hb=d9e24efc7491c75496d20fbfd1e48954605ea301;hp=f5aee01ca705562a5c689f6c3a6cdf6a9c7fd90d;hpb=82d6b6dc9f3f9dbcaa9f8320649df29359c83279;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/MarsRover.java b/dsl/runtime/src/nl/ru/des/MarsRover.java index f5aee01..41a5f90 100644 --- a/dsl/runtime/src/nl/ru/des/MarsRover.java +++ b/dsl/runtime/src/nl/ru/des/MarsRover.java @@ -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; @@ -10,9 +12,11 @@ import lejos.hardware.sensor.EV3ColorSensor; import lejos.hardware.sensor.EV3TouchSensor; import lejos.hardware.sensor.EV3UltrasonicSensor; import lejos.robotics.SampleProvider; +import lejos.robotics.subsumption.Arbitrator; public class MarsRover { public static final float SAMPLERATE = 100; + public static LinkedList missions = new LinkedList(); @SuppressWarnings("resource") public static void main(String[] args) { @@ -45,5 +49,24 @@ public class MarsRover { LCDPrinter.print("Initializing behaviours..."); SensorCollector sensors = new SensorCollector(ultraSonic, color, leftTouch, rightTouch); + + LCDPrinter.print("Initializing color collector..."); + ColorMemory colorMemory = new ColorMemory(color); + + Arbitrator a; + 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