2025-10-25 23:03:50 -07:00
|
|
|
// Copyright (c) FIRST and other WPILib contributors.
|
|
|
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
|
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
|
|
|
|
|
|
package edu.wpi.first.wpilibj.simulation;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.wpilibj.Gamepad;
|
|
|
|
|
|
|
|
|
|
/** Class to control a simulated Gamepad controller. */
|
|
|
|
|
public class GamepadSim extends GenericHIDSim {
|
|
|
|
|
/**
|
|
|
|
|
* Constructs from a Gamepad object.
|
|
|
|
|
*
|
|
|
|
|
* @param joystick controller to simulate
|
|
|
|
|
*/
|
|
|
|
|
@SuppressWarnings("this-escape")
|
|
|
|
|
public GamepadSim(Gamepad joystick) {
|
|
|
|
|
super(joystick);
|
|
|
|
|
setAxesMaximumIndex(6);
|
|
|
|
|
setButtonsMaximumIndex(26);
|
|
|
|
|
setPOVsMaximumIndex(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Constructs from a joystick port number.
|
|
|
|
|
*
|
|
|
|
|
* @param port port number
|
|
|
|
|
*/
|
|
|
|
|
@SuppressWarnings("this-escape")
|
|
|
|
|
public GamepadSim(int port) {
|
|
|
|
|
super(port);
|
|
|
|
|
setAxesMaximumIndex(6);
|
|
|
|
|
setButtonsMaximumIndex(26);
|
|
|
|
|
setPOVsMaximumIndex(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the left X value of the controller's joystick.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftX(double value) {
|
|
|
|
|
setRawAxis(Gamepad.Axis.kLeftX.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the left Y value of the controller's joystick.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftY(double value) {
|
|
|
|
|
setRawAxis(Gamepad.Axis.kLeftY.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the right X value of the controller's joystick.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightX(double value) {
|
|
|
|
|
setRawAxis(Gamepad.Axis.kRightX.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the right Y value of the controller's joystick.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightY(double value) {
|
|
|
|
|
setRawAxis(Gamepad.Axis.kRightY.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the left trigger axis on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftTriggerAxis(double value) {
|
|
|
|
|
setRawAxis(Gamepad.Axis.kLeftTrigger.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the right trigger axis on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightTriggerAxis(double value) {
|
|
|
|
|
setRawAxis(Gamepad.Axis.kRightTrigger.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the South Face button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setSouthFaceButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kSouthFace.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the East Face button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setEastFaceButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kEastFace.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the West Face button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setWestFaceButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kWestFace.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the North Face button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
2025-11-01 16:24:22 +00:00
|
|
|
public void setNorthFaceButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kNorthFace.value, value);
|
2025-10-25 23:03:50 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Back button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setBackButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kBack.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Guide button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setGuideButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kGuide.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Start button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setStartButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kStart.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the left stick button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftStickButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kLeftStick.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the right stick button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightStickButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kRightStick.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the right shoulder button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftShoulderButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kLeftShoulder.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the right shoulder button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightShoulderButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kRightShoulder.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the D-pad up button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setDpadUpButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kDpadUp.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the D-pad down button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setDpadDownButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kDpadDown.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the D-pad left button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setDpadLeftButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kDpadLeft.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the D-pad right button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setDpadRightButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kDpadRight.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Miscellaneous 1 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setMisc1Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kMisc1.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Right Paddle 1 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightPaddle1Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kRightPaddle1.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Left Paddle 1 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftPaddle1Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kLeftPaddle1.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Right Paddle 2 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setRightPaddle2Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kRightPaddle2.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Left Paddle 2 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setLeftPaddle2Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kLeftPaddle2.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Touchpad button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setTouchpadButton(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kTouchpad.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Miscellaneous 2 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setMisc2Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kMisc2.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Miscellaneous 3 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setMisc3Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kMisc3.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Miscellaneous 4 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setMisc4Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kMisc4.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Miscellaneous 5 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setMisc5Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kMisc5.value, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Change the value of the Miscellaneous 6 button on the controller.
|
|
|
|
|
*
|
|
|
|
|
* @param value the new value
|
|
|
|
|
*/
|
|
|
|
|
public void setMisc6Button(boolean value) {
|
|
|
|
|
setRawButton(Gamepad.Button.kMisc6.value, value);
|
|
|
|
|
}
|
|
|
|
|
}
|