private double speed;
private double targetPosition;
private double currentPosition;
- private boolean isDecreasing = false;
public SetHandToLevel(double speed, int level) {
requires(Robot.defenseArm);
if (currentPosition > targetPosition) {
Robot.defenseArm.setHandSpeed(-speed);
- isDecreasing = true;
} else {
Robot.defenseArm.setHandSpeed(speed);
- isDecreasing = false;
}
}
protected boolean isFinished() {
currentPosition = Robot.defenseArm.getHandPotAngle();
- if (isDecreasing == true) {
- return (currentPosition <= targetPosition + THRESHOLD);
- } else {
- return (currentPosition >= targetPosition - THRESHOLD);
- }
+ double difference = Math.abs(currentPosition - targetPosition);
+ return (difference <= THRESHOLD);
}
@Override