Class XboxController

java.lang.Object
edu.wpi.first.wpilibj.GenericHID
edu.wpi.first.wpilibj.XboxController

public class XboxController
extends GenericHID
Handle input from Xbox 360 or Xbox One controllers connected to the Driver Station.

This class handles Xbox input that comes from the Driver Station. Each time a value is requested the most recent value is returned. There is a single class instance for each controller and the mapping of ports to hardware buttons depends on the code in the Driver Station.

Only first party controllers from Microsoft are guaranteed to have the correct mapping, and only through the official NI DS. Sim is not guaranteed to have the same mapping, as well as any 3rd party controllers.

  • Constructor Details

    • XboxController

      public XboxController​(int port)
      Construct an instance of a controller.
      Parameters:
      port - The port index on the Driver Station that the controller is plugged into.
  • Method Details

    • getLeftX

      public double getLeftX()
      Get the X axis value of left side of the controller.
      Returns:
      The axis value.
    • getRightX

      public double getRightX()
      Get the X axis value of right side of the controller.
      Returns:
      The axis value.
    • getLeftY

      public double getLeftY()
      Get the Y axis value of left side of the controller.
      Returns:
      The axis value.
    • getRightY

      public double getRightY()
      Get the Y axis value of right side of the controller.
      Returns:
      The axis value.
    • getLeftTriggerAxis

      public double getLeftTriggerAxis()
      Get the left trigger (LT) axis value of the controller. Note that this axis is bound to the range of [0, 1] as opposed to the usual [-1, 1].
      Returns:
      The axis value.
    • getRightTriggerAxis

      public double getRightTriggerAxis()
      Get the right trigger (RT) axis value of the controller. Note that this axis is bound to the range of [0, 1] as opposed to the usual [-1, 1].
      Returns:
      The axis value.
    • getLeftBumper

      public boolean getLeftBumper()
      Read the value of the left bumper (LB) button on the controller.
      Returns:
      The state of the button.
    • getRightBumper

      public boolean getRightBumper()
      Read the value of the right bumper (RB) button on the controller.
      Returns:
      The state of the button.
    • getLeftBumperPressed

      public boolean getLeftBumperPressed()
      Whether the left bumper (LB) was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getRightBumperPressed

      public boolean getRightBumperPressed()
      Whether the right bumper (RB) was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getLeftBumperReleased

      public boolean getLeftBumperReleased()
      Whether the left bumper (LB) was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • getRightBumperReleased

      public boolean getRightBumperReleased()
      Whether the right bumper (RB) was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • leftBumper

      public BooleanEvent leftBumper​(EventLoop loop)
      Constructs an event instance around the right bumper's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the right bumper's digital signal attached to the given loop.
    • rightBumper

      Constructs an event instance around the left bumper's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the left bumper's digital signal attached to the given loop.
    • getLeftStickButton

      public boolean getLeftStickButton()
      Read the value of the left stick button (LSB) on the controller.
      Returns:
      The state of the button.
    • getRightStickButton

      public boolean getRightStickButton()
      Read the value of the right stick button (RSB) on the controller.
      Returns:
      The state of the button.
    • getLeftStickButtonPressed

      public boolean getLeftStickButtonPressed()
      Whether the left stick button (LSB) was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getRightStickButtonPressed

      public boolean getRightStickButtonPressed()
      Whether the right stick button (RSB) was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getLeftStickButtonReleased

      public boolean getLeftStickButtonReleased()
      Whether the left stick button (LSB) was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • getRightStickButtonReleased

      public boolean getRightStickButtonReleased()
      Whether the right stick (RSB) button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • leftStick

      public BooleanEvent leftStick​(EventLoop loop)
      Constructs an event instance around the left stick button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the left stick button's digital signal attached to the given loop.
    • rightStick

      public BooleanEvent rightStick​(EventLoop loop)
      Constructs an event instance around the right stick button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the right stick button's digital signal attached to the given loop.
    • getAButton

      public boolean getAButton()
      Read the value of the A button on the controller.
      Returns:
      The state of the button.
    • getAButtonPressed

      public boolean getAButtonPressed()
      Whether the A button was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getAButtonReleased

      public boolean getAButtonReleased()
      Whether the A button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • a

      public BooleanEvent a​(EventLoop loop)
      Constructs an event instance around the A button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the A button's digital signal attached to the given loop.
    • getBButton

      public boolean getBButton()
      Read the value of the B button on the controller.
      Returns:
      The state of the button.
    • getBButtonPressed

      public boolean getBButtonPressed()
      Whether the B button was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getBButtonReleased

      public boolean getBButtonReleased()
      Whether the B button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • b

      public BooleanEvent b​(EventLoop loop)
      Constructs an event instance around the B button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the B button's digital signal attached to the given loop.
    • getXButton

      public boolean getXButton()
      Read the value of the X button on the controller.
      Returns:
      The state of the button.
    • getXButtonPressed

      public boolean getXButtonPressed()
      Whether the X button was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getXButtonReleased

      public boolean getXButtonReleased()
      Whether the X button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • x

      public BooleanEvent x​(EventLoop loop)
      Constructs an event instance around the X button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the X button's digital signal attached to the given loop.
    • getYButton

      public boolean getYButton()
      Read the value of the Y button on the controller.
      Returns:
      The state of the button.
    • getYButtonPressed

      public boolean getYButtonPressed()
      Whether the Y button was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getYButtonReleased

      public boolean getYButtonReleased()
      Whether the Y button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • y

      public BooleanEvent y​(EventLoop loop)
      Constructs an event instance around the Y button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the Y button's digital signal attached to the given loop.
    • getBackButton

      public boolean getBackButton()
      Read the value of the back button on the controller.
      Returns:
      The state of the button.
    • getBackButtonPressed

      public boolean getBackButtonPressed()
      Whether the back button was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getBackButtonReleased

      public boolean getBackButtonReleased()
      Whether the back button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • back

      public BooleanEvent back​(EventLoop loop)
      Constructs an event instance around the back button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the back button's digital signal attached to the given loop.
    • getStartButton

      public boolean getStartButton()
      Read the value of the start button on the controller.
      Returns:
      The state of the button.
    • getStartButtonPressed

      public boolean getStartButtonPressed()
      Whether the start button was pressed since the last check.
      Returns:
      Whether the button was pressed since the last check.
    • getStartButtonReleased

      public boolean getStartButtonReleased()
      Whether the start button was released since the last check.
      Returns:
      Whether the button was released since the last check.
    • start

      public BooleanEvent start​(EventLoop loop)
      Constructs an event instance around the start button's digital signal.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance representing the start button's digital signal attached to the given loop.
    • leftTrigger

      public BooleanEvent leftTrigger​(double threshold, EventLoop loop)
      Constructs an event instance around the axis value of the left trigger. The returned trigger will be true when the axis value is greater than threshold.
      Parameters:
      threshold - the minimum axis value for the returned BooleanEvent to be true. This value should be in the range [0, 1] where 0 is the unpressed state of the axis.
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance that is true when the left trigger's axis exceeds the provided threshold, attached to the given event loop
    • leftTrigger

      Constructs an event instance around the axis value of the left trigger. The returned trigger will be true when the axis value is greater than 0.5.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance that is true when the left trigger's axis exceeds the provided threshold, attached to the given event loop
    • rightTrigger

      public BooleanEvent rightTrigger​(double threshold, EventLoop loop)
      Constructs an event instance around the axis value of the right trigger. The returned trigger will be true when the axis value is greater than threshold.
      Parameters:
      threshold - the minimum axis value for the returned BooleanEvent to be true. This value should be in the range [0, 1] where 0 is the unpressed state of the axis.
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance that is true when the right trigger's axis exceeds the provided threshold, attached to the given event loop
    • rightTrigger

      Constructs an event instance around the axis value of the right trigger. The returned trigger will be true when the axis value is greater than 0.5.
      Parameters:
      loop - the event loop instance to attach the event to.
      Returns:
      an event instance that is true when the right trigger's axis exceeds the provided threshold, attached to the given event loop