package nl.ru.des.behaviours;
+import lejos.hardware.Button;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
+import lejos.robotics.SampleProvider;
import lejos.robotics.subsumption.Behavior;
-import nl.ru.des.sensors.UltraSoneSensor;
+import nl.ru.des.LCDPrinter;
-public class AvoidHighObjectBehaviour implements Behavior{
+public class AvoidHighObjectBehaviour extends ReactiveBehaviour implements Behavior {
private static final long TURNTIME = 250;
- private UltraSoneSensor ultraSone;
private EV3LargeRegulatedMotor leftMotor;
private EV3LargeRegulatedMotor rightMotor;
- private boolean suppressed;
+ private float limit;
public AvoidHighObjectBehaviour(EV3LargeRegulatedMotor leftMotor, EV3LargeRegulatedMotor rightMotor,
- UltraSoneSensor ultraSoneSensor) {
- ultraSone = ultraSoneSensor;
+ SampleProvider ultraSone) {
+ super(ultraSone);
this.leftMotor = leftMotor;
this.rightMotor = rightMotor;
+ LCDPrinter.print("Place object in turn radius and press a key");
+ Button.waitForAnyPress();
+ fetchSample();
+ limit = samples[0];
}
@Override
public boolean takeControl() {
- return ultraSone.getCurrentStatus();
+ fetchSample();
+ return samples[0] < limit;
}
@Override
public void action() {
- suppressed = false;
+ super.action();
rightMotor.backward();
leftMotor.forward();
long time = System.currentTimeMillis();
leftMotor.stop(true);
rightMotor.stop(true);
}
-
- @Override
- public void suppress() {
- suppressed = true;
- }
}
\ No newline at end of file