package nl.ru.des.sensors;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
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<Integer> collectedColors;
+ private Set<String> variables;
//Local sensors
private EV3GyroSensor gyroSensor;
rightLightTime = System.currentTimeMillis();
gyroTime = System.currentTimeMillis();
- collectedColors = new HashSet<Integer>();
+ color = -1;
+ leftTouch = false;
+ rightTouch = false;
+ frontUltra = Float.MAX_VALUE;
+ variables = new HashSet<String>();
}
//Local sensors
}
//Remote sensors
- public void resetColors(){
- collectedColors.clear();
+ public void reset(){
+ variables.clear();
}
- public boolean collected(int[] colors){
- return collectedColors.containsAll(Arrays.asList(colors));
+ public boolean collected(String var){
+ return variables.contains(var);
+ }
+
+ public void saveVar(String var) {
+ variables.add(var);
}
public int color(){
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;