import org.usfirst.frc.team3501.robot.OI;
import org.usfirst.frc.team3501.robot.Robot;
+import edu.wpi.first.wpilibj.Joystick.AxisType;
import edu.wpi.first.wpilibj.command.Command;
/**
- *
+ * This command will run throughout teleop and listens for joystick inputs to
+ * drive the driveTrain. This never finishes until teleop ends. - works in
+ * conjunction with OI.java
*/
public class JoystickDrive extends Command {
- public JoystickDrive() {
- requires(Robot.getDriveTrain());
- }
+ double previousThrust = 0;
+ double previousTwist = 0;
- @Override
- protected void initialize() {
- }
+ public JoystickDrive() {
+ requires(Robot.getDriveTrain());
+ }
- @Override
- protected void execute() {
- double left = OI.leftJoystick.getY();
- double right = OI.rightJoystick.getY();
+ @Override
+ protected void initialize() {
+ }
- Robot.getDriveTrain().joystickDrive(left, right);
- }
+ @Override
+ protected void execute() {
+ double thrust = OI.xboxController.getY();
+ double twist = OI.xboxController.getAxis(AxisType.kZ);
- @Override
- protected boolean isFinished() {
- return false;
- }
+ thrust = (6 * previousThrust + thrust) / 7;
+ twist = (6 * previousTwist + twist) / 7;
- @Override
- protected void end() {
- Robot.getDriveTrain().stop();
- }
+ previousThrust = thrust;
+ previousTwist = twist;
- @Override
- protected void interrupted() {
- }
+ Robot.getDriveTrain().joystickDrive(-thrust, -twist);
+ }
+
+ @Override
+ protected boolean isFinished() {
+ return false;
+ }
+
+ @Override
+ protected void end() {
+ Robot.getDriveTrain().stop();
+ }
+
+ @Override
+ protected void interrupted() {
+ }
}