Package edu.wpi.first.wpilibj.templates

Source Code of edu.wpi.first.wpilibj.templates.OI

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());
}
TOP

Related Classes of edu.wpi.first.wpilibj.templates.OI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.