package edu.wpi.first.wpilibj.templates;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.buttons.Button;
import edu.wpi.first.wpilibj.buttons.DigitalIOButton;
import edu.wpi.first.wpilibj.buttons.JoystickButton;
import edu.wpi.first.wpilibj.templates.commands.CollectorCommand;
import edu.wpi.first.wpilibj.templates.commands.CatapultCommand;
import edu.wpi.first.wpilibj.templates.commands.ManualCommand;
/**
* This class is the glue that binds the controls on the physical operator
* interface to the commands and command groups that allow control of the robot.
*/
public class OI {
public Joystick leftJoy = new Joystick(1);
public Joystick rightJoy = new Joystick(2);
Button collectButton = new JoystickButton(rightJoy, 1);
Button reverseButton = new JoystickButton(rightJoy, 2);
Button catapultButton = new JoystickButton(leftJoy, 10);
Button manualButton = new JoystickButton(leftJoy, 11);
public OI()
{
collectButton.whileHeld(new CollectorCommand(true));
reverseButton.whileHeld(new CollectorCommand(false));
manualButton.whenPressed(new ManualCommand());
catapultButton.whenPressed(new CatapultCommand());
/* manualWinchTie.whileHeld(new ManualCommand(false, false, true, false));
manualWinchUntie.whileHeld(new ManualCommand(false, false, false, true));
manualServoOpen.whenPressed(new ManualCommand(true, false, false, false));
manualServoClosed.whenPressed(new ManualCommand(false, true, false, false)); */
}
//// CREATING BUTTONS
// One type of button is a joystick button which is any button on a joystick.
// You create one by telling it which joystick it's on and which button
// number it is.
// Joystick stick = new Joystick(port);
// Button button = new JoystickButton(stick, buttonNumber);
// Another type of button you can create is a DigitalIOButton, which is
// a button or switch hooked up to the cypress module. These are useful if
// you want to build a customized operator interface.
// Button button = new DigitalIOButton(1);
// There are a few additional built in buttons you can use. Additionally,
// by subclassing Button you can create custom triggers and bind those to
// commands the same as any other Button.
//// TRIGGERING COMMANDS WITH BUTTONS
// Once you have a button, it's trivial to bind it to a button in one of
// three ways:
// Start the command when the button is pressed and let it run the command
// until it is finished as determined by it's isFinished method.
// button.whenPressed(new ExampleCommand());
// Run the command while the button is being held down and interrupt it once
// the button is released.
// button.whileHeld(new ExampleCommand());
// Start the command when the button is released and let it run the command
// until it is finished as determined by it's isFinished method.
// button.whenReleased(new ExampleCommand());
}