update mart
[des2015.git] / mart / ev3 / ex2 / nl / ru / des / behaviours / AvoidLowObjectBehaviour.java
index 0ce1704..1c47f4f 100644 (file)
@@ -1,32 +1,34 @@
 package nl.ru.des.behaviours;
 
 import lejos.hardware.motor.EV3LargeRegulatedMotor;
+import lejos.robotics.SampleProvider;
 import lejos.robotics.subsumption.Behavior;
-import nl.ru.des.sensors.TouchSensor;
 
 public class AvoidLowObjectBehaviour implements Behavior {
        private static final long BACKWARDSTIME = 250;
        private static final long TURNTIME = 250;
-       private TouchSensor rightTouch, leftTouch;
+       private SampleProvider touch;
+       private float[] samples;
        private boolean avoidDirection;
        private boolean suppressed;
        private EV3LargeRegulatedMotor leftMotor, rightMotor;
 
        public AvoidLowObjectBehaviour(EV3LargeRegulatedMotor leftMotor, EV3LargeRegulatedMotor rightMotor,
-                       TouchSensor leftTouchSensor, TouchSensor rightTouchSensor) {
-               rightTouch = rightTouchSensor;
-               leftTouch = leftTouchSensor;
+                       SampleProvider touch) {
+               this.touch = touch;
+               this.samples = new float[touch.sampleSize()];
                this.leftMotor = leftMotor;
                this.rightMotor = rightMotor;
        }
 
        @Override
        public boolean takeControl() {
-               if(leftTouch.getCurrentStatus()){
+               touch.fetchSample(samples, 0);
+               if(samples[0]>0){
                        avoidDirection = false;
                        return true;
                }
-               if(rightTouch.getCurrentStatus()){
+               if(samples[1]>0){
                        avoidDirection = true;
                        return true;
                }