package frc1778;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.buttons.JoystickButton;
import frc1778.commands.TankDriveWithJoysticks;
/**
* glue that binds controls on driver station to commands and command groups
* that allow control of the robot.
*/
public class OI {
Joystick leftJoy;
Joystick rightJoy;
Joystick gamepad;
JoystickButton lButton1;
JoystickButton lButton2;
JoystickButton lButton3;
JoystickButton lButton4;
JoystickButton lButton5;
JoystickButton lButton6;
JoystickButton lButton7;
JoystickButton lButton8;
JoystickButton lButton9;
JoystickButton lButton10;
JoystickButton lButton11;
JoystickButton rButton1;
JoystickButton rButton2;
JoystickButton rButton3;
JoystickButton rButton4;
JoystickButton rButton5;
JoystickButton rButton6;
JoystickButton rButton7;
JoystickButton rButton8;
JoystickButton rButton9;
JoystickButton rButton10;
JoystickButton rButton11;
public OI ()
{
leftJoy = new Joystick (1);
rightJoy = new Joystick (2);
gamepad = new Joystick(3);
rButton1.whenReleased(new TankDriveWithJoysticks());
// TODO: tie gamepad inputs to new gate operation commands
// TODO: Evan should do this
}
// Tank drive & Arcade drive input methods (left and right joysticks)
public boolean getLeftButton6(){
return leftJoy.getRawButton(6);
}
public boolean getLeftButton7(){
return leftJoy.getRawButton(7);
}
public double getLeftSpeed () {
return -leftJoy.getY ();
}
public double getLeftTurn () {
return leftJoy.getX ();
}
public double getRightSpeed () {
return -rightJoy.getY ();
}
public double getRightTurn () {
return rightJoy.getX ();
}
public double getRightThrottle () {
return -rightJoy.getZ ();
}
public double getLeftThrottle () {
return -leftJoy.getZ ();
}
// Gate control input methods (gamepad)
// TODO: Define input methods for the gamepad here for gate operation
// TODO: Evan should be defining these
public double getGamepadRightStick() {
return gamepad.getRawAxis(4);
}
public double getGamepadLeftStick() {
return gamepad.getRawAxis(2);
}
}