X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2Fsensors%2FSensorCollector.java;h=29433c19563687d4a34156109f335df07ffc3f49;hb=08b6c73b2092b16b5dc1c0f2884d2e9c49c445af;hp=60652d8224daabb24aff3fb8084ffd82a618f399;hpb=7c99354e9259379ab5dab36745024dce2393252d;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 60652d8..29433c1 100644 --- a/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java +++ b/dsl/runtime/src/nl/ru/des/sensors/SensorCollector.java @@ -1,10 +1,15 @@ package nl.ru.des.sensors; +import lejos.hardware.lcd.LCD; import lejos.robotics.SampleProvider; -import nl.ru.des.LCDPrinter; +import lejos.utility.Delay; public class SensorCollector implements MessageHandler{ - public static final int DELAY = 300; + public static final int DELAY = 100; + + private static final float DANGER_DISTANCE_FRONT = 0.15f; + private static final float DANGER_DISTANCE_BACK = 0.035f; + private static final float DANGER_LIGHT = 0.45f; //Local sensors private SampleProvider ultra, leftLight, rightLight, gyro; @@ -34,13 +39,30 @@ public class SensorCollector implements MessageHandler{ gyroTime = System.currentTimeMillis(); } + public void debug(){ + new Thread(){ + @Override public void run(){ + while(true){ + ultra.fetchSample(ultraSamples, 0); + leftLight.fetchSample(leftLightSamples, 0); + rightLight.fetchSample(rightLightSamples, 0); + LCD.drawString("back: " + Float.toString(ultraSamples[0]), 0, 1); + LCD.drawString("front: " + Float.toString(frontUltra), 0, 2); + LCD.drawString("left: " + Float.toString(leftLightSamples[0]), 0, 3); + LCD.drawString("right: " + Float.toString(rightLightSamples[0]), 0, 4); + Delay.msDelay(250); + } + } + }.run(); + } + //Local sensors - public float backDistance(){ + public boolean backDistance(){ if(System.currentTimeMillis()-ultraTime>DELAY){ ultra.fetchSample(ultraSamples, 0); ultraTime = System.currentTimeMillis(); } - return ultraSamples[0]; + return ultraSamples[0]>DANGER_DISTANCE_BACK; } public boolean leftLight(){ @@ -48,7 +70,7 @@ public class SensorCollector implements MessageHandler{ leftLight.fetchSample(leftLightSamples, 0); leftLightTime = System.currentTimeMillis(); } - return leftLightSamples[0]>0.5; + return leftLightSamples[0]>DANGER_LIGHT; } public boolean rightLight(){ @@ -56,7 +78,7 @@ public class SensorCollector implements MessageHandler{ rightLight.fetchSample(rightLightSamples, 0); rightLightTime = System.currentTimeMillis(); } - return rightLightSamples[0]>0.5; + return rightLightSamples[0]>DANGER_LIGHT; } public float gyro(){ @@ -68,6 +90,10 @@ public class SensorCollector implements MessageHandler{ } //Remote sensors + public boolean collected(int[] colors){ + return false; + } + public int color(){ return color; } @@ -80,13 +106,12 @@ public class SensorCollector implements MessageHandler{ return rightTouch; } - public float frontDistance(){ - return frontUltra; + public boolean frontDistance(){ + return frontUltra