update code
[des2015.git] / dsl / runtime / src / nl / ru / des / sensors / SensorCollector.java
index dcf2d87..59fe6cd 100644 (file)
@@ -1,5 +1,9 @@
 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;
 
@@ -10,6 +14,8 @@ public class SensorCollector implements MessageHandler{
        private static final float DANGER_DISTANCE_BACK = 0.035f;
        private static final float DANGER_LIGHT = 0.45f;
        
+       private Set<Integer> collectedColors;
+       
        //Local sensors
        private EV3GyroSensor gyroSensor;
        private SampleProvider ultra, leftLight, rightLight, gyro;
@@ -38,6 +44,8 @@ public class SensorCollector implements MessageHandler{
                leftLightTime = System.currentTimeMillis();
                rightLightTime = System.currentTimeMillis();
                gyroTime = System.currentTimeMillis();
+               
+               collectedColors = new HashSet<Integer>();
        }
        
        //Local sensors
@@ -78,8 +86,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 +116,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;