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;
}