From: Arunima DIvya Date: Sat, 28 Jan 2017 04:53:49 +0000 (-0800) Subject: Create constants for gear piston in drivetrain X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=commitdiff_plain;h=73e8adbcc97717c92e40d7365a116b6bfc98395f Create constants for gear piston in drivetrain --- diff --git a/src/org/usfirst/frc/team3501/robot/commands/driving/SetGear.java b/src/org/usfirst/frc/team3501/robot/commands/driving/SetGear.java new file mode 100644 index 0000000..9a9a08a --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/driving/SetGear.java @@ -0,0 +1,38 @@ +package org.usfirst.frc.team3501.robot.commands.driving; + +import org.usfirst.frc.team3501.robot.Robot; + +import edu.wpi.first.wpilibj.command.Command; + +public class SetGear extends Command { + public SetGear() { + 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() { + } +} diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index f25d548..54324f0 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -7,6 +7,7 @@ import com.ctre.CANTalon; import edu.wpi.first.wpilibj.ADXRS450_Gyro; import edu.wpi.first.wpilibj.DoubleSolenoid; +import edu.wpi.first.wpilibj.DoubleSolenoid.Value; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.RobotDrive; import edu.wpi.first.wpilibj.command.Subsystem; @@ -26,7 +27,7 @@ public class DriveTrain extends Subsystem { private final CANTalon frontLeft, frontRight, rearLeft, rearRight; private final RobotDrive robotDrive; private final Encoder leftEncoder, rightEncoder; - private final DoubleSolenoid shifter; + private final DoubleSolenoid leftGearPiston, rightGearPiston; private ADXRS450_Gyro imu; @@ -52,6 +53,10 @@ public class DriveTrain extends Subsystem { this.imu = new ADXRS450_Gyro(Constants.DriveTrain.GYRO_PORT); shifter = DoubleSolenoid(10, Constants.DriveTrain.SHIFTER_FORWARD, Constants.DriveTrain.SHIFTER_REVERSE); + leftGearPiston = new DoubleSolenoid(Constants.DriveTrain.MODULE_NUMBER, + Constants.DriveTrain.LEFT_FORWARD, Constants.DriveTrain.LEFT_REVERSE); + rightGearPiston = new DoubleSolenoid(Constants.DriveTrain.MODULE_NUMBER, + Constants.DriveTrain.RIGHT_FORWARD, Constants.DriveTrain.RIGHT_REVERSE); } public static DriveTrain getDriveTrain() { @@ -134,6 +139,42 @@ public class DriveTrain extends Subsystem { public double getZeroAngle() { return this.gyroZero; + /* + * @return a value that is the current setpoint for the piston kReverse or + * KForward + */ + public Value getLeftGearPistonValue() { + return leftGearPiston.get(); + } + + /* + * @return a value that is the current setppoint for the piston kReverse or + * kForward + */ + public Value getRightGearPistonValue() { + return rightGearPiston.get(); + } + + /* + * Changes the ball shift gear assembly to high + */ + public void setHighGear() { + changeGear(Constants.DriveTrain.HIGH_GEAR); + } + + /* + * Changes the ball shift gear assembly to low + */ + public void setLowGear() { + changeGear(Constants.DriveTrain.LOW_GEAR); + } + + /* + * Changes the gear to a DoubleSolenoid.Value + */ + private void changeGear(DoubleSolenoid.Value gear) { + leftGearPiston.set(gear); + rightGearPiston.set(gear); } @Override