package org.usfirst.frc.team3501.robot.commands.driving;
+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());
- }
-
- // Called just before this Command runs the first time
- @Override
- protected void initialize() {
- }
-
- // Called repeatedly when this Command is scheduled to run
- @Override
- protected void execute() {
- }
-
- // Make this return true when this Command no longer needs to run execute()
- @Override
- protected boolean isFinished() {
- return false;
- }
-
- // Called once after isFinished returns true
- @Override
- protected void end() {
- }
-
- // Called when another command which requires one or more of the same
- // subsystems is scheduled to run
- @Override
- protected void interrupted() {
- }
+ double previousThrust = 0;
+ double previousTwist = 0;
+
+ public JoystickDrive() {
+ requires(Robot.getDriveTrain());
+ }
+
+ @Override
+ protected void initialize() {
+ }
+
+ @Override
+ protected void execute() {
+ double thrust = OI.xboxController.getY();
+ double twist = OI.xboxController.getAxis(AxisType.kZ);
+
+ thrust = (6 * previousThrust + thrust) / 7;
+ twist = (6 * previousTwist + twist) / 7;
+
+ previousThrust = thrust;
+ previousTwist = twist;
+
+ Robot.getDriveTrain().joystickDrive(-thrust, -twist);
+ }
+
+ @Override
+ protected boolean isFinished() {
+ return false;
+ }
+
+ @Override
+ protected void end() {
+ Robot.getDriveTrain().stop();
+ }
+
+ @Override
+ protected void interrupted() {
+ }
}