Implemented measure motor
[des2015.git] / dsl / runtime / src / nl / ru / des / sensors / SensorCollector.java
index a9c2048..dcf2d87 100644 (file)
@@ -1,17 +1,17 @@
 package nl.ru.des.sensors;
 
-import lejos.hardware.lcd.LCD;
+import lejos.hardware.sensor.EV3GyroSensor;
 import lejos.robotics.SampleProvider;
-import lejos.utility.Delay;
 
 public class SensorCollector implements MessageHandler{
-       public static final int DELAY = 100;
+       public static final int DELAY = 200;
 
        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 EV3GyroSensor gyroSensor;
        private SampleProvider ultra, leftLight, rightLight, gyro;
        private float[] ultraSamples, leftLightSamples, rightLightSamples, gyroSamples;
        private long ultraTime, leftLightTime, rightLightTime, gyroTime;
@@ -24,11 +24,12 @@ public class SensorCollector implements MessageHandler{
        public SensorCollector(SampleProvider ultra,
                        SampleProvider leftLight,
                        SampleProvider rightLight,
-                       SampleProvider gyro){
+                       EV3GyroSensor gyro){
                this.ultra = ultra;
                this.leftLight = leftLight;
                this.rightLight = rightLight;
-               this.gyro = gyro;
+               this.gyroSensor = gyro;
+               this.gyro = gyro.getAngleMode();
                ultraSamples = new float[ultra.sampleSize()];
                gyroSamples = new float[gyro.sampleSize()];
                leftLightSamples = new float[leftLight.sampleSize()];
@@ -72,6 +73,10 @@ public class SensorCollector implements MessageHandler{
                return gyroSamples[0];
        }
        
+       public void resetGyro(){
+               gyroSensor.reset();
+       }
+       
        //Remote sensors
        public boolean collected(int[] colors){
                return false;