fix conflicts
[3501/2015-FRC-Spark] / src / org / usfirst / frc3501 / RiceCatRobot / commands / MoveDistance.java
CommitLineData
c9ab1206
KZ
1package org.usfirst.frc3501.RiceCatRobot.commands;
2
4b8a525f 3import org.usfirst.frc3501.RiceCatRobot.robot.Robot;
ba4d69ce 4import org.usfirst.frc3501.RiceCatRobot.subsystems.DriveTrain;
c9ab1206
KZ
5
6import edu.wpi.first.wpilibj.command.Command;
7
8public class MoveDistance extends Command {
9
ba4d69ce
KZ
10 double distance, minSpeed, maxSpeed;
11
12 public MoveDistance(double distance, double minSpeed, double maxSpeed) {
c9ab1206
KZ
13 requires(Robot.driveTrain);
14 this.distance = distance;
ba4d69ce
KZ
15 this.minSpeed = minSpeed;
16 this.maxSpeed = maxSpeed;
c9ab1206 17 }
ba4d69ce
KZ
18
19 protected void initialize() {
20 Robot.driveTrain.resetEncoders();
c9ab1206
KZ
21 }
22
23 @Override
24 protected void execute() {
ba4d69ce
KZ
25 double speed = 4 * (minSpeed - maxSpeed) *
26 Math.pow((Robot.driveTrain.getAverageSpeed() / distance - 0.5), 2)
27 + maxSpeed;
28 Robot.driveTrain.setMotorSpeeds(speed, speed);
c9ab1206
KZ
29 }
30
31 @Override
32 protected boolean isFinished() {
ba4d69ce
KZ
33 if (Robot.driveTrain.getLeftDistance() > distance
34 && Robot.driveTrain.getRightDistance() > distance)
35 return true;
c9ab1206
KZ
36 return false;
37 }
ba4d69ce 38
c9ab1206
KZ
39 @Override
40 protected void end() {
ba4d69ce 41 Robot.driveTrain.stop();
c9ab1206
KZ
42 }
43
44 @Override
45 protected void interrupted() {
ba4d69ce 46 end();
c9ab1206
KZ
47 }
48}