X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2Fsensors%2FSensorCollector.java;h=4597d92805c2220b9969860df654b7225f060d40;hb=095cdf6fc0cbad75c6057a401cbab23c18931a3d;hp=dcf2d8770bf86b771b1e32343520afc6ec383103;hpb=3a12cfb82749c7ca2cec2d31da1b4d62ffe9e7e2;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java b/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java index dcf2d87..4597d92 100644 --- a/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java +++ b/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java @@ -1,14 +1,20 @@ package nl.ru.des.sensors; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + import lejos.hardware.sensor.EV3GyroSensor; import lejos.robotics.SampleProvider; public class SensorCollector implements MessageHandler{ public static final int DELAY = 200; - private static final float DANGER_DISTANCE_FRONT = 0.15f; + private static final float DANGER_DISTANCE_FRONT = 0.175f; private static final float DANGER_DISTANCE_BACK = 0.035f; - private static final float DANGER_LIGHT = 0.45f; + private static final float DANGER_LIGHT = 0.40f; + + private Set collectedColors; //Local sensors private EV3GyroSensor gyroSensor; @@ -38,6 +44,12 @@ public class SensorCollector implements MessageHandler{ leftLightTime = System.currentTimeMillis(); rightLightTime = System.currentTimeMillis(); gyroTime = System.currentTimeMillis(); + + color = -1; + leftTouch = false; + rightTouch = false; + frontUltra = Float.MAX_VALUE; + collectedColors = new HashSet(); } //Local sensors @@ -78,8 +90,12 @@ public class SensorCollector implements MessageHandler{ } //Remote sensors + public void resetColors(){ + collectedColors.clear(); + } + public boolean collected(int[] colors){ - return false; + return collectedColors.containsAll(Arrays.asList(colors)); } public int color(){ @@ -104,6 +120,7 @@ public class SensorCollector implements MessageHandler{ switch(RemoteSensors.RemoteSensorEnum.values()[Integer.valueOf(Character.toString(m.charAt(0)))]){ case COLOR: color = Integer.valueOf(s); + collectedColors.add(color); break; case LEFT: leftTouch = Integer.valueOf(s)==1;