-package nl.ru.des;
+package nl.ru.des.behaviours;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
+import lejos.robotics.Color;
import lejos.robotics.subsumption.Behavior;
+import nl.ru.des.sensors.ColorSensor;
public class StayInFieldBehaviour implements Behavior {
public static final long BACKWARDSTIME = 250;
public static final long TURNTIME = 250;
-
+
private ColorSensor colorSensor;
private EV3LargeRegulatedMotor leftMotor, rightMotor;
private boolean suppressed;
-
- public StayInFieldBehaviour(ColorSensor colorSensor, EV3LargeRegulatedMotor leftMotor, EV3LargeRegulatedMotor rightMotor) {
+
+ public StayInFieldBehaviour(ColorSensor colorSensor, EV3LargeRegulatedMotor leftMotor,
+ EV3LargeRegulatedMotor rightMotor) {
this.colorSensor = colorSensor;
this.leftMotor = leftMotor;
this.rightMotor = rightMotor;
}
-
+
@Override
public boolean takeControl() {
- return colorSensor.getCurrentColor() == "Black";
+ return colorSensor.getCurrentColor() == Color.BLACK;
}
@Override
leftMotor.backward();
rightMotor.backward();
long time = System.currentTimeMillis();
- while(!suppressed && System.currentTimeMillis()-time > BACKWARDSTIME){
+ while (!suppressed && System.currentTimeMillis() - time > BACKWARDSTIME) {
Thread.yield();
}
leftMotor.forward();
rightMotor.backward();
time = System.currentTimeMillis();
- while(!suppressed && System.currentTimeMillis()-time > TURNTIME){
+ while (!suppressed && System.currentTimeMillis() - time > TURNTIME) {
Thread.yield();
}
leftMotor.stop(true);