mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Instead of just having a max count for joystick values, there's an available mask of values. This is because in the future we're expecting there to be holes in the list of available buttons and axes. This updates everything to support that scenario. Also, Joystick buttons, axes, and POVs all now start at 0 instead of 1.
120 lines
4.3 KiB
Django/Jinja
120 lines
4.3 KiB
Django/Jinja
// 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.
|
|
|
|
// THIS FILE WAS AUTO-GENERATED BY ./wpilibj/generate_hids.py. DO NOT MODIFY
|
|
{% macro capitalize_first(string) -%}
|
|
{{ string[0]|capitalize + string[1:] }}
|
|
{%- endmacro %}
|
|
package edu.wpi.first.wpilibj.simulation;
|
|
|
|
import edu.wpi.first.wpilibj.{{ ConsoleName }}Controller;
|
|
|
|
/** Class to control a simulated {{ ConsoleName }} controller. */
|
|
public class {{ ConsoleName }}ControllerSim extends GenericHIDSim {
|
|
/**
|
|
* Constructs from a {{ ConsoleName }}Controller object.
|
|
*
|
|
* @param joystick controller to simulate
|
|
*/
|
|
@SuppressWarnings("this-escape")
|
|
public {{ ConsoleName }}ControllerSim({{ ConsoleName }}Controller joystick) {
|
|
super(joystick);
|
|
setAxesMaximumIndex({{ sticks|length + triggers|length }});
|
|
setButtonsMaximumIndex({{ buttons|length }});
|
|
setPOVsMaximumIndex(1);
|
|
}
|
|
|
|
/**
|
|
* Constructs from a joystick port number.
|
|
*
|
|
* @param port port number
|
|
*/
|
|
@SuppressWarnings("this-escape")
|
|
public {{ ConsoleName }}ControllerSim(int port) {
|
|
super(port);
|
|
setAxesMaximumIndex({{ sticks|length + triggers|length }});
|
|
setButtonsMaximumIndex({{ buttons|length }});
|
|
setPOVsMaximumIndex(1);
|
|
}
|
|
{% for stick in sticks %}
|
|
/**
|
|
* Change the {{ stick.NameParts|join(" ") }} value of the controller's joystick.
|
|
*
|
|
* @param value the new value
|
|
*/
|
|
public void set{{ stick.NameParts|map("capitalize")|join }}(double value) {
|
|
setRawAxis({{ ConsoleName }}Controller.Axis.k{{ stick.NameParts|map("capitalize")|join }}.value, value);
|
|
}
|
|
{% endfor -%}
|
|
{% for trigger in triggers %}
|
|
/**
|
|
* Change the value of the {{ trigger.DocName }} axis on the controller.
|
|
*
|
|
* @param value the new value
|
|
*/
|
|
public void set{{ capitalize_first(trigger.name) }}Axis(double value) {
|
|
setRawAxis({{ ConsoleName }}Controller.Axis.k{{ capitalize_first(trigger.name) }}.value, value);
|
|
}
|
|
{% endfor -%}
|
|
{% for button in buttons %}
|
|
/**
|
|
* Change the value of the {{ button.DocName|default(button.name) }} button on the controller.
|
|
*
|
|
* @param value the new value
|
|
*/
|
|
public void set{{ capitalize_first(button.name) }}Button(boolean value) {
|
|
setRawButton({{ ConsoleName }}Controller.Button.k{{ capitalize_first(button.name) }}.value, value);
|
|
}
|
|
{% endfor -%}
|
|
{% if ConsoleName == "Xbox" %}
|
|
/**
|
|
* Change the value of the left bumper on the joystick.
|
|
*
|
|
* @param state the new value
|
|
* @deprecated Use {@link setLeftBumperButton} instead. This function is deprecated for removal
|
|
* to make function names consistent to allow the HID classes to be automatically generated.
|
|
*/
|
|
@Deprecated(since = "2025", forRemoval = true)
|
|
public void setLeftBumper(boolean state) {
|
|
setRawButton(XboxController.Button.kLeftBumper.value, state);
|
|
}
|
|
|
|
/**
|
|
* Change the value of the right bumper on the joystick.
|
|
*
|
|
* @param state the new value
|
|
* @deprecated Use {@link setRightBumperButton} instead. This function is deprecated for removal
|
|
* to make function names consistent to allow the HID classes to be automatically generated.
|
|
*/
|
|
@Deprecated(since = "2025", forRemoval = true)
|
|
public void setRightBumper(boolean state) {
|
|
setRawButton(XboxController.Button.kRightBumper.value, state);
|
|
}
|
|
{% elif ConsoleName == "PS4" %}
|
|
/**
|
|
* Change the value of the touchpad button on the controller.
|
|
*
|
|
* @param value the new value
|
|
* @deprecated Use {@link setTouchpadButton} instead. This function is deprecated for removal to
|
|
* make function names consistent to allow the HID classes to be automatically generated.
|
|
*/
|
|
@Deprecated(since = "2025", forRemoval = true)
|
|
public void setTouchpad(boolean value) {
|
|
setRawButton(PS4Controller.Button.kTouchpad.value, value);
|
|
}
|
|
{% elif ConsoleName == "PS5" %}
|
|
/**
|
|
* Change the value of the touchpad button on the controller.
|
|
*
|
|
* @param value the new value
|
|
* @deprecated Use {@link setTouchpadButton} instead. This function is deprecated for removal to
|
|
* make function names consistent to allow the HID classes to be automatically generated.
|
|
*/
|
|
@Deprecated(since = "2025", forRemoval = true)
|
|
public void setTouchpad(boolean value) {
|
|
setRawButton(PS5Controller.Button.kTouchpad.value, value);
|
|
}
|
|
{% endif -%}
|
|
}
|