[wpilib,cmd] Cache HID wrappers (#8970)

Store DriverStation-owned GenericHID and Gamepad instances in Java and
C++, and expose the cached objects to Python bindings.

Move hand-written command gamepad and joystick wrappers to compose
cached CommandGenericHID instances plus typed HID wrappers, including a
Python CommandGamepad.

This will let us remove UserControls, while helping ensure that we don't
have state smashing between GenericHID objects.

Another bonus is without inheritance, intellisense will no longer show a
bunch of annoying methods, and instead just what actually exists.

---------

Co-authored-by: Peter Johnson <johnson.peter@gmail.com>
This commit is contained in:
Thad House
2026-06-11 09:42:39 -07:00
committed by GitHub
parent fe499ede4c
commit c647e67de0
105 changed files with 4210 additions and 1336 deletions

View File

@@ -19,8 +19,9 @@ import org.wpilib.event.EventLoop;
* @see {{ ConsoleName }}Controller
*/
@SuppressWarnings("MethodName")
public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
private final {{ ConsoleName }}Controller m_hid;
public class Command{{ ConsoleName }}Controller {
private final CommandGenericHID m_hid;
private final {{ ConsoleName }}Controller m_controller;
/**
* Construct an instance of a controller. Commands bound to buttons on the controller will be
@@ -29,8 +30,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public Command{{ ConsoleName }}Controller(int port) {
super(port);
m_hid = new {{ ConsoleName }}Controller(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -41,19 +41,27 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public Command{{ ConsoleName }}Controller(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new {{ ConsoleName }}Controller(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_controller = new {{ ConsoleName }}Controller(m_hid.getHID());
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public {{ ConsoleName }}Controller getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying {{ ConsoleName }}Controller object.
*
* @return the wrapped {{ ConsoleName }}Controller object
*/
public {{ ConsoleName }}Controller get{{ ConsoleName }}Controller() {
return m_controller;
}
{% for button in buttons %}
/**
* Constructs a Trigger instance around the {{ button.DocName|default(button.name) }} button's digital signal.
@@ -65,7 +73,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* @see #{{ button.name }}(EventLoop)
*/
public Trigger {{ button.name }}() {
return {{ button.name }}(getScheduler().getDefaultEventLoop());
return {{ button.name }}(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -76,7 +84,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger {{ button.name }}(EventLoop loop) {
return button({{ ConsoleName }}Controller.Button.k{{ capitalize_first(button.name) }}.value, loop);
return m_hid.button({{ ConsoleName }}Controller.Button.k{{ capitalize_first(button.name) }}.value, loop);
}
{% endfor -%}
{% for trigger in triggers -%}
@@ -92,7 +100,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* threshold, attached to the given event loop
*/
public Trigger {{ trigger.name }}(double threshold, EventLoop loop) {
return axisGreaterThan({{ ConsoleName }}Controller.Axis.k{{ capitalize_first(trigger.name) }}.value, threshold, loop);
return m_hid.axisGreaterThan({{ ConsoleName }}Controller.Axis.k{{ capitalize_first(trigger.name) }}.value, threshold, loop);
}
/**
@@ -107,7 +115,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* Scheduler#getDefault default scheduler} if a scheduler was not explicitly provided.
*/
public Trigger {{ trigger.name }}(double threshold) {
return {{ trigger.name }}(threshold, getScheduler().getDefaultEventLoop());
return {{ trigger.name }}(threshold, m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -131,7 +139,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* @return The axis value.
*/
public double get{{ stick.NameParts|map("capitalize")|join }}() {
return m_hid.get{{ stick.NameParts|map("capitalize")|join }}();
return m_controller.get{{ stick.NameParts|map("capitalize")|join }}();
}
{% endfor -%}
{% for trigger in triggers %}
@@ -142,7 +150,7 @@ public class Command{{ ConsoleName }}Controller extends CommandGenericHID {
* @return The axis value.
*/
public double get{{ capitalize_first(trigger.name) }}Axis() {
return m_hid.get{{ capitalize_first(trigger.name) }}Axis();
return m_controller.get{{ capitalize_first(trigger.name) }}Axis();
}
{% endfor -%}
}

View File

@@ -17,8 +17,9 @@ import org.wpilib.event.EventLoop;
* @see NiDsPS4Controller
*/
@SuppressWarnings("MethodName")
public class CommandNiDsPS4Controller extends CommandGenericHID {
private final NiDsPS4Controller m_hid;
public class CommandNiDsPS4Controller {
private final CommandGenericHID m_hid;
private final NiDsPS4Controller m_controller;
/**
* Construct an instance of a controller. Commands bound to buttons on the controller will be
@@ -27,8 +28,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsPS4Controller(int port) {
super(port);
m_hid = new NiDsPS4Controller(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -39,20 +39,28 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsPS4Controller(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new NiDsPS4Controller(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_controller = new NiDsPS4Controller(m_hid.getHID());
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public NiDsPS4Controller getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying NiDsPS4Controller object.
*
* @return the wrapped NiDsPS4Controller object
*/
public NiDsPS4Controller getNiDsPS4Controller() {
return m_controller;
}
/**
* Constructs a Trigger instance around the square button's digital signal.
*
@@ -63,7 +71,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #square(EventLoop)
*/
public Trigger square() {
return square(getScheduler().getDefaultEventLoop());
return square(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -74,7 +82,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger square(EventLoop loop) {
return button(NiDsPS4Controller.Button.kSquare.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kSquare.value, loop);
}
/**
@@ -87,7 +95,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #cross(EventLoop)
*/
public Trigger cross() {
return cross(getScheduler().getDefaultEventLoop());
return cross(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -98,7 +106,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger cross(EventLoop loop) {
return button(NiDsPS4Controller.Button.kCross.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kCross.value, loop);
}
/**
@@ -111,7 +119,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #circle(EventLoop)
*/
public Trigger circle() {
return circle(getScheduler().getDefaultEventLoop());
return circle(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -122,7 +130,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger circle(EventLoop loop) {
return button(NiDsPS4Controller.Button.kCircle.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kCircle.value, loop);
}
/**
@@ -135,7 +143,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #triangle(EventLoop)
*/
public Trigger triangle() {
return triangle(getScheduler().getDefaultEventLoop());
return triangle(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -146,7 +154,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger triangle(EventLoop loop) {
return button(NiDsPS4Controller.Button.kTriangle.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kTriangle.value, loop);
}
/**
@@ -159,7 +167,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #L1(EventLoop)
*/
public Trigger L1() {
return L1(getScheduler().getDefaultEventLoop());
return L1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -170,7 +178,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger L1(EventLoop loop) {
return button(NiDsPS4Controller.Button.kL1.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kL1.value, loop);
}
/**
@@ -183,7 +191,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #R1(EventLoop)
*/
public Trigger R1() {
return R1(getScheduler().getDefaultEventLoop());
return R1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -194,7 +202,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger R1(EventLoop loop) {
return button(NiDsPS4Controller.Button.kR1.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kR1.value, loop);
}
/**
@@ -207,7 +215,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #L2(EventLoop)
*/
public Trigger L2() {
return L2(getScheduler().getDefaultEventLoop());
return L2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -218,7 +226,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger L2(EventLoop loop) {
return button(NiDsPS4Controller.Button.kL2.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kL2.value, loop);
}
/**
@@ -231,7 +239,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #R2(EventLoop)
*/
public Trigger R2() {
return R2(getScheduler().getDefaultEventLoop());
return R2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -242,7 +250,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger R2(EventLoop loop) {
return button(NiDsPS4Controller.Button.kR2.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kR2.value, loop);
}
/**
@@ -255,7 +263,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #share(EventLoop)
*/
public Trigger share() {
return share(getScheduler().getDefaultEventLoop());
return share(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -266,7 +274,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger share(EventLoop loop) {
return button(NiDsPS4Controller.Button.kShare.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kShare.value, loop);
}
/**
@@ -279,7 +287,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #options(EventLoop)
*/
public Trigger options() {
return options(getScheduler().getDefaultEventLoop());
return options(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -290,7 +298,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger options(EventLoop loop) {
return button(NiDsPS4Controller.Button.kOptions.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kOptions.value, loop);
}
/**
@@ -303,7 +311,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #L3(EventLoop)
*/
public Trigger L3() {
return L3(getScheduler().getDefaultEventLoop());
return L3(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -314,7 +322,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger L3(EventLoop loop) {
return button(NiDsPS4Controller.Button.kL3.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kL3.value, loop);
}
/**
@@ -327,7 +335,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #R3(EventLoop)
*/
public Trigger R3() {
return R3(getScheduler().getDefaultEventLoop());
return R3(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -338,7 +346,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger R3(EventLoop loop) {
return button(NiDsPS4Controller.Button.kR3.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kR3.value, loop);
}
/**
@@ -351,7 +359,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #PS(EventLoop)
*/
public Trigger PS() {
return PS(getScheduler().getDefaultEventLoop());
return PS(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -362,7 +370,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger PS(EventLoop loop) {
return button(NiDsPS4Controller.Button.kPS.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kPS.value, loop);
}
/**
@@ -375,7 +383,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @see #touchpad(EventLoop)
*/
public Trigger touchpad() {
return touchpad(getScheduler().getDefaultEventLoop());
return touchpad(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -386,7 +394,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger touchpad(EventLoop loop) {
return button(NiDsPS4Controller.Button.kTouchpad.value, loop);
return m_hid.button(NiDsPS4Controller.Button.kTouchpad.value, loop);
}
/**
@@ -395,7 +403,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftX() {
return m_hid.getLeftX();
return m_controller.getLeftX();
}
/**
@@ -404,7 +412,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftY() {
return m_hid.getLeftY();
return m_controller.getLeftY();
}
/**
@@ -413,7 +421,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getRightX() {
return m_hid.getRightX();
return m_controller.getRightX();
}
/**
@@ -422,7 +430,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getRightY() {
return m_hid.getRightY();
return m_controller.getRightY();
}
/**
@@ -432,7 +440,7 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getL2Axis() {
return m_hid.getL2Axis();
return m_controller.getL2Axis();
}
/**
@@ -442,6 +450,6 @@ public class CommandNiDsPS4Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getR2Axis() {
return m_hid.getR2Axis();
return m_controller.getR2Axis();
}
}

View File

@@ -17,8 +17,9 @@ import org.wpilib.event.EventLoop;
* @see NiDsPS5Controller
*/
@SuppressWarnings("MethodName")
public class CommandNiDsPS5Controller extends CommandGenericHID {
private final NiDsPS5Controller m_hid;
public class CommandNiDsPS5Controller {
private final CommandGenericHID m_hid;
private final NiDsPS5Controller m_controller;
/**
* Construct an instance of a controller. Commands bound to buttons on the controller will be
@@ -27,8 +28,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsPS5Controller(int port) {
super(port);
m_hid = new NiDsPS5Controller(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -39,20 +39,28 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsPS5Controller(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new NiDsPS5Controller(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_controller = new NiDsPS5Controller(m_hid.getHID());
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public NiDsPS5Controller getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying NiDsPS5Controller object.
*
* @return the wrapped NiDsPS5Controller object
*/
public NiDsPS5Controller getNiDsPS5Controller() {
return m_controller;
}
/**
* Constructs a Trigger instance around the square button's digital signal.
*
@@ -63,7 +71,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #square(EventLoop)
*/
public Trigger square() {
return square(getScheduler().getDefaultEventLoop());
return square(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -74,7 +82,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger square(EventLoop loop) {
return button(NiDsPS5Controller.Button.kSquare.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kSquare.value, loop);
}
/**
@@ -87,7 +95,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #cross(EventLoop)
*/
public Trigger cross() {
return cross(getScheduler().getDefaultEventLoop());
return cross(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -98,7 +106,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger cross(EventLoop loop) {
return button(NiDsPS5Controller.Button.kCross.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kCross.value, loop);
}
/**
@@ -111,7 +119,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #circle(EventLoop)
*/
public Trigger circle() {
return circle(getScheduler().getDefaultEventLoop());
return circle(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -122,7 +130,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger circle(EventLoop loop) {
return button(NiDsPS5Controller.Button.kCircle.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kCircle.value, loop);
}
/**
@@ -135,7 +143,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #triangle(EventLoop)
*/
public Trigger triangle() {
return triangle(getScheduler().getDefaultEventLoop());
return triangle(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -146,7 +154,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger triangle(EventLoop loop) {
return button(NiDsPS5Controller.Button.kTriangle.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kTriangle.value, loop);
}
/**
@@ -159,7 +167,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #L1(EventLoop)
*/
public Trigger L1() {
return L1(getScheduler().getDefaultEventLoop());
return L1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -170,7 +178,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger L1(EventLoop loop) {
return button(NiDsPS5Controller.Button.kL1.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kL1.value, loop);
}
/**
@@ -183,7 +191,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #R1(EventLoop)
*/
public Trigger R1() {
return R1(getScheduler().getDefaultEventLoop());
return R1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -194,7 +202,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger R1(EventLoop loop) {
return button(NiDsPS5Controller.Button.kR1.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kR1.value, loop);
}
/**
@@ -207,7 +215,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #L2(EventLoop)
*/
public Trigger L2() {
return L2(getScheduler().getDefaultEventLoop());
return L2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -218,7 +226,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger L2(EventLoop loop) {
return button(NiDsPS5Controller.Button.kL2.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kL2.value, loop);
}
/**
@@ -231,7 +239,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #R2(EventLoop)
*/
public Trigger R2() {
return R2(getScheduler().getDefaultEventLoop());
return R2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -242,7 +250,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger R2(EventLoop loop) {
return button(NiDsPS5Controller.Button.kR2.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kR2.value, loop);
}
/**
@@ -255,7 +263,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #create(EventLoop)
*/
public Trigger create() {
return create(getScheduler().getDefaultEventLoop());
return create(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -266,7 +274,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger create(EventLoop loop) {
return button(NiDsPS5Controller.Button.kCreate.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kCreate.value, loop);
}
/**
@@ -279,7 +287,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #options(EventLoop)
*/
public Trigger options() {
return options(getScheduler().getDefaultEventLoop());
return options(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -290,7 +298,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger options(EventLoop loop) {
return button(NiDsPS5Controller.Button.kOptions.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kOptions.value, loop);
}
/**
@@ -303,7 +311,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #L3(EventLoop)
*/
public Trigger L3() {
return L3(getScheduler().getDefaultEventLoop());
return L3(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -314,7 +322,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger L3(EventLoop loop) {
return button(NiDsPS5Controller.Button.kL3.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kL3.value, loop);
}
/**
@@ -327,7 +335,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #R3(EventLoop)
*/
public Trigger R3() {
return R3(getScheduler().getDefaultEventLoop());
return R3(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -338,7 +346,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger R3(EventLoop loop) {
return button(NiDsPS5Controller.Button.kR3.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kR3.value, loop);
}
/**
@@ -351,7 +359,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #PS(EventLoop)
*/
public Trigger PS() {
return PS(getScheduler().getDefaultEventLoop());
return PS(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -362,7 +370,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger PS(EventLoop loop) {
return button(NiDsPS5Controller.Button.kPS.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kPS.value, loop);
}
/**
@@ -375,7 +383,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @see #touchpad(EventLoop)
*/
public Trigger touchpad() {
return touchpad(getScheduler().getDefaultEventLoop());
return touchpad(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -386,7 +394,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* to the given loop.
*/
public Trigger touchpad(EventLoop loop) {
return button(NiDsPS5Controller.Button.kTouchpad.value, loop);
return m_hid.button(NiDsPS5Controller.Button.kTouchpad.value, loop);
}
/**
@@ -395,7 +403,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftX() {
return m_hid.getLeftX();
return m_controller.getLeftX();
}
/**
@@ -404,7 +412,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftY() {
return m_hid.getLeftY();
return m_controller.getLeftY();
}
/**
@@ -413,7 +421,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getRightX() {
return m_hid.getRightX();
return m_controller.getRightX();
}
/**
@@ -422,7 +430,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getRightY() {
return m_hid.getRightY();
return m_controller.getRightY();
}
/**
@@ -432,7 +440,7 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getL2Axis() {
return m_hid.getL2Axis();
return m_controller.getL2Axis();
}
/**
@@ -442,6 +450,6 @@ public class CommandNiDsPS5Controller extends CommandGenericHID {
* @return The axis value.
*/
public double getR2Axis() {
return m_hid.getR2Axis();
return m_controller.getR2Axis();
}
}

View File

@@ -17,8 +17,9 @@ import org.wpilib.event.EventLoop;
* @see NiDsStadiaController
*/
@SuppressWarnings("MethodName")
public class CommandNiDsStadiaController extends CommandGenericHID {
private final NiDsStadiaController m_hid;
public class CommandNiDsStadiaController {
private final CommandGenericHID m_hid;
private final NiDsStadiaController m_controller;
/**
* Construct an instance of a controller. Commands bound to buttons on the controller will be
@@ -27,8 +28,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsStadiaController(int port) {
super(port);
m_hid = new NiDsStadiaController(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -39,20 +39,28 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsStadiaController(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new NiDsStadiaController(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_controller = new NiDsStadiaController(m_hid.getHID());
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public NiDsStadiaController getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying NiDsStadiaController object.
*
* @return the wrapped NiDsStadiaController object
*/
public NiDsStadiaController getNiDsStadiaController() {
return m_controller;
}
/**
* Constructs a Trigger instance around the A button's digital signal.
*
@@ -63,7 +71,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #a(EventLoop)
*/
public Trigger a() {
return a(getScheduler().getDefaultEventLoop());
return a(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -74,7 +82,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger a(EventLoop loop) {
return button(NiDsStadiaController.Button.kA.value, loop);
return m_hid.button(NiDsStadiaController.Button.kA.value, loop);
}
/**
@@ -87,7 +95,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #b(EventLoop)
*/
public Trigger b() {
return b(getScheduler().getDefaultEventLoop());
return b(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -98,7 +106,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger b(EventLoop loop) {
return button(NiDsStadiaController.Button.kB.value, loop);
return m_hid.button(NiDsStadiaController.Button.kB.value, loop);
}
/**
@@ -111,7 +119,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #x(EventLoop)
*/
public Trigger x() {
return x(getScheduler().getDefaultEventLoop());
return x(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -122,7 +130,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger x(EventLoop loop) {
return button(NiDsStadiaController.Button.kX.value, loop);
return m_hid.button(NiDsStadiaController.Button.kX.value, loop);
}
/**
@@ -135,7 +143,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #y(EventLoop)
*/
public Trigger y() {
return y(getScheduler().getDefaultEventLoop());
return y(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -146,7 +154,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger y(EventLoop loop) {
return button(NiDsStadiaController.Button.kY.value, loop);
return m_hid.button(NiDsStadiaController.Button.kY.value, loop);
}
/**
@@ -159,7 +167,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #leftBumper(EventLoop)
*/
public Trigger leftBumper() {
return leftBumper(getScheduler().getDefaultEventLoop());
return leftBumper(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -170,7 +178,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger leftBumper(EventLoop loop) {
return button(NiDsStadiaController.Button.kLeftBumper.value, loop);
return m_hid.button(NiDsStadiaController.Button.kLeftBumper.value, loop);
}
/**
@@ -183,7 +191,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #rightBumper(EventLoop)
*/
public Trigger rightBumper() {
return rightBumper(getScheduler().getDefaultEventLoop());
return rightBumper(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -194,7 +202,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger rightBumper(EventLoop loop) {
return button(NiDsStadiaController.Button.kRightBumper.value, loop);
return m_hid.button(NiDsStadiaController.Button.kRightBumper.value, loop);
}
/**
@@ -207,7 +215,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #leftStick(EventLoop)
*/
public Trigger leftStick() {
return leftStick(getScheduler().getDefaultEventLoop());
return leftStick(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -218,7 +226,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger leftStick(EventLoop loop) {
return button(NiDsStadiaController.Button.kLeftStick.value, loop);
return m_hid.button(NiDsStadiaController.Button.kLeftStick.value, loop);
}
/**
@@ -231,7 +239,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #rightStick(EventLoop)
*/
public Trigger rightStick() {
return rightStick(getScheduler().getDefaultEventLoop());
return rightStick(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -242,7 +250,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger rightStick(EventLoop loop) {
return button(NiDsStadiaController.Button.kRightStick.value, loop);
return m_hid.button(NiDsStadiaController.Button.kRightStick.value, loop);
}
/**
@@ -255,7 +263,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #ellipses(EventLoop)
*/
public Trigger ellipses() {
return ellipses(getScheduler().getDefaultEventLoop());
return ellipses(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -266,7 +274,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger ellipses(EventLoop loop) {
return button(NiDsStadiaController.Button.kEllipses.value, loop);
return m_hid.button(NiDsStadiaController.Button.kEllipses.value, loop);
}
/**
@@ -279,7 +287,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #hamburger(EventLoop)
*/
public Trigger hamburger() {
return hamburger(getScheduler().getDefaultEventLoop());
return hamburger(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -290,7 +298,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger hamburger(EventLoop loop) {
return button(NiDsStadiaController.Button.kHamburger.value, loop);
return m_hid.button(NiDsStadiaController.Button.kHamburger.value, loop);
}
/**
@@ -303,7 +311,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #stadia(EventLoop)
*/
public Trigger stadia() {
return stadia(getScheduler().getDefaultEventLoop());
return stadia(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -314,7 +322,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger stadia(EventLoop loop) {
return button(NiDsStadiaController.Button.kStadia.value, loop);
return m_hid.button(NiDsStadiaController.Button.kStadia.value, loop);
}
/**
@@ -327,7 +335,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #rightTrigger(EventLoop)
*/
public Trigger rightTrigger() {
return rightTrigger(getScheduler().getDefaultEventLoop());
return rightTrigger(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -338,7 +346,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger rightTrigger(EventLoop loop) {
return button(NiDsStadiaController.Button.kRightTrigger.value, loop);
return m_hid.button(NiDsStadiaController.Button.kRightTrigger.value, loop);
}
/**
@@ -351,7 +359,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #leftTrigger(EventLoop)
*/
public Trigger leftTrigger() {
return leftTrigger(getScheduler().getDefaultEventLoop());
return leftTrigger(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -362,7 +370,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger leftTrigger(EventLoop loop) {
return button(NiDsStadiaController.Button.kLeftTrigger.value, loop);
return m_hid.button(NiDsStadiaController.Button.kLeftTrigger.value, loop);
}
/**
@@ -375,7 +383,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #google(EventLoop)
*/
public Trigger google() {
return google(getScheduler().getDefaultEventLoop());
return google(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -386,7 +394,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger google(EventLoop loop) {
return button(NiDsStadiaController.Button.kGoogle.value, loop);
return m_hid.button(NiDsStadiaController.Button.kGoogle.value, loop);
}
/**
@@ -399,7 +407,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @see #frame(EventLoop)
*/
public Trigger frame() {
return frame(getScheduler().getDefaultEventLoop());
return frame(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -410,7 +418,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* to the given loop.
*/
public Trigger frame(EventLoop loop) {
return button(NiDsStadiaController.Button.kFrame.value, loop);
return m_hid.button(NiDsStadiaController.Button.kFrame.value, loop);
}
/**
@@ -419,7 +427,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftX() {
return m_hid.getLeftX();
return m_controller.getLeftX();
}
/**
@@ -428,7 +436,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @return The axis value.
*/
public double getRightX() {
return m_hid.getRightX();
return m_controller.getRightX();
}
/**
@@ -437,7 +445,7 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftY() {
return m_hid.getLeftY();
return m_controller.getLeftY();
}
/**
@@ -446,6 +454,6 @@ public class CommandNiDsStadiaController extends CommandGenericHID {
* @return The axis value.
*/
public double getRightY() {
return m_hid.getRightY();
return m_controller.getRightY();
}
}

View File

@@ -17,8 +17,9 @@ import org.wpilib.event.EventLoop;
* @see NiDsXboxController
*/
@SuppressWarnings("MethodName")
public class CommandNiDsXboxController extends CommandGenericHID {
private final NiDsXboxController m_hid;
public class CommandNiDsXboxController {
private final CommandGenericHID m_hid;
private final NiDsXboxController m_controller;
/**
* Construct an instance of a controller. Commands bound to buttons on the controller will be
@@ -27,8 +28,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsXboxController(int port) {
super(port);
m_hid = new NiDsXboxController(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -39,20 +39,28 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandNiDsXboxController(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new NiDsXboxController(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_controller = new NiDsXboxController(m_hid.getHID());
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public NiDsXboxController getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying NiDsXboxController object.
*
* @return the wrapped NiDsXboxController object
*/
public NiDsXboxController getNiDsXboxController() {
return m_controller;
}
/**
* Constructs a Trigger instance around the A button's digital signal.
*
@@ -63,7 +71,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #a(EventLoop)
*/
public Trigger a() {
return a(getScheduler().getDefaultEventLoop());
return a(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -74,7 +82,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger a(EventLoop loop) {
return button(NiDsXboxController.Button.kA.value, loop);
return m_hid.button(NiDsXboxController.Button.kA.value, loop);
}
/**
@@ -87,7 +95,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #b(EventLoop)
*/
public Trigger b() {
return b(getScheduler().getDefaultEventLoop());
return b(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -98,7 +106,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger b(EventLoop loop) {
return button(NiDsXboxController.Button.kB.value, loop);
return m_hid.button(NiDsXboxController.Button.kB.value, loop);
}
/**
@@ -111,7 +119,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #x(EventLoop)
*/
public Trigger x() {
return x(getScheduler().getDefaultEventLoop());
return x(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -122,7 +130,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger x(EventLoop loop) {
return button(NiDsXboxController.Button.kX.value, loop);
return m_hid.button(NiDsXboxController.Button.kX.value, loop);
}
/**
@@ -135,7 +143,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #y(EventLoop)
*/
public Trigger y() {
return y(getScheduler().getDefaultEventLoop());
return y(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -146,7 +154,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger y(EventLoop loop) {
return button(NiDsXboxController.Button.kY.value, loop);
return m_hid.button(NiDsXboxController.Button.kY.value, loop);
}
/**
@@ -159,7 +167,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #leftBumper(EventLoop)
*/
public Trigger leftBumper() {
return leftBumper(getScheduler().getDefaultEventLoop());
return leftBumper(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -170,7 +178,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger leftBumper(EventLoop loop) {
return button(NiDsXboxController.Button.kLeftBumper.value, loop);
return m_hid.button(NiDsXboxController.Button.kLeftBumper.value, loop);
}
/**
@@ -183,7 +191,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #rightBumper(EventLoop)
*/
public Trigger rightBumper() {
return rightBumper(getScheduler().getDefaultEventLoop());
return rightBumper(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -194,7 +202,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger rightBumper(EventLoop loop) {
return button(NiDsXboxController.Button.kRightBumper.value, loop);
return m_hid.button(NiDsXboxController.Button.kRightBumper.value, loop);
}
/**
@@ -207,7 +215,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #back(EventLoop)
*/
public Trigger back() {
return back(getScheduler().getDefaultEventLoop());
return back(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -218,7 +226,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger back(EventLoop loop) {
return button(NiDsXboxController.Button.kBack.value, loop);
return m_hid.button(NiDsXboxController.Button.kBack.value, loop);
}
/**
@@ -231,7 +239,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #start(EventLoop)
*/
public Trigger start() {
return start(getScheduler().getDefaultEventLoop());
return start(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -242,7 +250,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger start(EventLoop loop) {
return button(NiDsXboxController.Button.kStart.value, loop);
return m_hid.button(NiDsXboxController.Button.kStart.value, loop);
}
/**
@@ -255,7 +263,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #leftStick(EventLoop)
*/
public Trigger leftStick() {
return leftStick(getScheduler().getDefaultEventLoop());
return leftStick(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -266,7 +274,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger leftStick(EventLoop loop) {
return button(NiDsXboxController.Button.kLeftStick.value, loop);
return m_hid.button(NiDsXboxController.Button.kLeftStick.value, loop);
}
/**
@@ -279,7 +287,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @see #rightStick(EventLoop)
*/
public Trigger rightStick() {
return rightStick(getScheduler().getDefaultEventLoop());
return rightStick(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -290,7 +298,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* to the given loop.
*/
public Trigger rightStick(EventLoop loop) {
return button(NiDsXboxController.Button.kRightStick.value, loop);
return m_hid.button(NiDsXboxController.Button.kRightStick.value, loop);
}
/**
@@ -304,7 +312,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* threshold, attached to the given event loop
*/
public Trigger leftTrigger(double threshold, EventLoop loop) {
return axisGreaterThan(NiDsXboxController.Axis.kLeftTrigger.value, threshold, loop);
return m_hid.axisGreaterThan(NiDsXboxController.Axis.kLeftTrigger.value, threshold, loop);
}
/**
@@ -319,7 +327,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* Scheduler#getDefault default scheduler} if a scheduler was not explicitly provided.
*/
public Trigger leftTrigger(double threshold) {
return leftTrigger(threshold, getScheduler().getDefaultEventLoop());
return leftTrigger(threshold, m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -346,7 +354,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* threshold, attached to the given event loop
*/
public Trigger rightTrigger(double threshold, EventLoop loop) {
return axisGreaterThan(NiDsXboxController.Axis.kRightTrigger.value, threshold, loop);
return m_hid.axisGreaterThan(NiDsXboxController.Axis.kRightTrigger.value, threshold, loop);
}
/**
@@ -361,7 +369,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* Scheduler#getDefault default scheduler} if a scheduler was not explicitly provided.
*/
public Trigger rightTrigger(double threshold) {
return rightTrigger(threshold, getScheduler().getDefaultEventLoop());
return rightTrigger(threshold, m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -383,7 +391,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftX() {
return m_hid.getLeftX();
return m_controller.getLeftX();
}
/**
@@ -392,7 +400,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @return The axis value.
*/
public double getRightX() {
return m_hid.getRightX();
return m_controller.getRightX();
}
/**
@@ -401,7 +409,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftY() {
return m_hid.getLeftY();
return m_controller.getLeftY();
}
/**
@@ -410,7 +418,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @return The axis value.
*/
public double getRightY() {
return m_hid.getRightY();
return m_controller.getRightY();
}
/**
@@ -420,7 +428,7 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftTriggerAxis() {
return m_hid.getLeftTriggerAxis();
return m_controller.getLeftTriggerAxis();
}
/**
@@ -430,6 +438,6 @@ public class CommandNiDsXboxController extends CommandGenericHID {
* @return The axis value.
*/
public double getRightTriggerAxis() {
return m_hid.getRightTriggerAxis();
return m_controller.getRightTriggerAxis();
}
}

View File

@@ -6,6 +6,7 @@ package org.wpilib.command3.button;
import org.wpilib.command3.Scheduler;
import org.wpilib.command3.Trigger;
import org.wpilib.driverstation.DriverStation;
import org.wpilib.driverstation.Gamepad;
import org.wpilib.event.EventLoop;
@@ -15,8 +16,9 @@ import org.wpilib.event.EventLoop;
* @see Gamepad
*/
@SuppressWarnings("MethodName")
public class CommandGamepad extends CommandGenericHID {
private final Gamepad m_hid;
public class CommandGamepad {
private final CommandGenericHID m_hid;
private final Gamepad m_gamepad;
/**
* Construct an instance of a controller.
@@ -24,8 +26,7 @@ public class CommandGamepad extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandGamepad(int port) {
super(port);
m_hid = new Gamepad(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -35,20 +36,51 @@ public class CommandGamepad extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandGamepad(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new Gamepad(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_gamepad = DriverStation.getGamepad(port);
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public Gamepad getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying Gamepad object.
*
* @return the wrapped Gamepad object
*/
public Gamepad getGamepad() {
return m_gamepad;
}
/**
* Constructs an event instance around this button's digital signal.
*
* @param button the button index
* @return an event instance representing the button's digital signal attached to the {@link
* Scheduler#getDefaultEventLoop() default scheduler button loop}.
* @see #button(int, EventLoop)
*/
public Trigger button(int button) {
return m_hid.button(button);
}
/**
* Constructs an event instance around this button's digital signal.
*
* @param button the button index
* @param loop the event loop instance to attach the event to.
* @return an event instance representing the button's digital signal attached to the given loop.
*/
public Trigger button(int button, EventLoop loop) {
return m_hid.button(button, loop);
}
/**
* Constructs a Trigger instance around the Face Down button's digital signal.
*
@@ -59,7 +91,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #faceDown(EventLoop)
*/
public Trigger faceDown() {
return faceDown(getScheduler().getDefaultEventLoop());
return faceDown(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -83,7 +115,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #faceRight(EventLoop)
*/
public Trigger faceRight() {
return faceRight(getScheduler().getDefaultEventLoop());
return faceRight(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -107,7 +139,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #faceLeft(EventLoop)
*/
public Trigger faceLeft() {
return faceLeft(getScheduler().getDefaultEventLoop());
return faceLeft(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -131,7 +163,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #faceUp(EventLoop)
*/
public Trigger faceUp() {
return faceUp(getScheduler().getDefaultEventLoop());
return faceUp(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -155,7 +187,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #back(EventLoop)
*/
public Trigger back() {
return back(getScheduler().getDefaultEventLoop());
return back(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -179,7 +211,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #guide(EventLoop)
*/
public Trigger guide() {
return guide(getScheduler().getDefaultEventLoop());
return guide(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -203,7 +235,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #start(EventLoop)
*/
public Trigger start() {
return start(getScheduler().getDefaultEventLoop());
return start(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -227,7 +259,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #leftStick(EventLoop)
*/
public Trigger leftStick() {
return leftStick(getScheduler().getDefaultEventLoop());
return leftStick(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -251,7 +283,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #rightStick(EventLoop)
*/
public Trigger rightStick() {
return rightStick(getScheduler().getDefaultEventLoop());
return rightStick(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -275,7 +307,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #leftBumper(EventLoop)
*/
public Trigger leftBumper() {
return leftBumper(getScheduler().getDefaultEventLoop());
return leftBumper(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -299,7 +331,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #rightBumper(EventLoop)
*/
public Trigger rightBumper() {
return rightBumper(getScheduler().getDefaultEventLoop());
return rightBumper(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -323,7 +355,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #dpadUp(EventLoop)
*/
public Trigger dpadUp() {
return dpadUp(getScheduler().getDefaultEventLoop());
return dpadUp(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -347,7 +379,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #dpadDown(EventLoop)
*/
public Trigger dpadDown() {
return dpadDown(getScheduler().getDefaultEventLoop());
return dpadDown(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -371,7 +403,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #dpadLeft(EventLoop)
*/
public Trigger dpadLeft() {
return dpadLeft(getScheduler().getDefaultEventLoop());
return dpadLeft(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -395,7 +427,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #dpadRight(EventLoop)
*/
public Trigger dpadRight() {
return dpadRight(getScheduler().getDefaultEventLoop());
return dpadRight(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -419,7 +451,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #misc1(EventLoop)
*/
public Trigger misc1() {
return misc1(getScheduler().getDefaultEventLoop());
return misc1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -443,7 +475,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #rightPaddle1(EventLoop)
*/
public Trigger rightPaddle1() {
return rightPaddle1(getScheduler().getDefaultEventLoop());
return rightPaddle1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -467,7 +499,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #leftPaddle1(EventLoop)
*/
public Trigger leftPaddle1() {
return leftPaddle1(getScheduler().getDefaultEventLoop());
return leftPaddle1(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -491,7 +523,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #rightPaddle2(EventLoop)
*/
public Trigger rightPaddle2() {
return rightPaddle2(getScheduler().getDefaultEventLoop());
return rightPaddle2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -515,7 +547,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #leftPaddle2(EventLoop)
*/
public Trigger leftPaddle2() {
return leftPaddle2(getScheduler().getDefaultEventLoop());
return leftPaddle2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -539,7 +571,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #touchpad(EventLoop)
*/
public Trigger touchpad() {
return touchpad(getScheduler().getDefaultEventLoop());
return touchpad(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -563,7 +595,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #misc2(EventLoop)
*/
public Trigger misc2() {
return misc2(getScheduler().getDefaultEventLoop());
return misc2(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -587,7 +619,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #misc3(EventLoop)
*/
public Trigger misc3() {
return misc3(getScheduler().getDefaultEventLoop());
return misc3(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -611,7 +643,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #misc4(EventLoop)
*/
public Trigger misc4() {
return misc4(getScheduler().getDefaultEventLoop());
return misc4(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -635,7 +667,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #misc5(EventLoop)
*/
public Trigger misc5() {
return misc5(getScheduler().getDefaultEventLoop());
return misc5(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -659,7 +691,7 @@ public class CommandGamepad extends CommandGenericHID {
* @see #misc6(EventLoop)
*/
public Trigger misc6() {
return misc6(getScheduler().getDefaultEventLoop());
return misc6(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -684,7 +716,7 @@ public class CommandGamepad extends CommandGenericHID {
* threshold, attached to the given event loop
*/
public Trigger leftTrigger(double threshold, EventLoop loop) {
return axisGreaterThan(Gamepad.Axis.LEFT_TRIGGER.value, threshold, loop);
return m_hid.axisGreaterThan(Gamepad.Axis.LEFT_TRIGGER.value, threshold, loop);
}
/**
@@ -698,7 +730,7 @@ public class CommandGamepad extends CommandGenericHID {
* loop}.
*/
public Trigger leftTrigger(double threshold) {
return leftTrigger(threshold, getScheduler().getDefaultEventLoop());
return leftTrigger(threshold, m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -725,7 +757,7 @@ public class CommandGamepad extends CommandGenericHID {
* threshold, attached to the given event loop
*/
public Trigger rightTrigger(double threshold, EventLoop loop) {
return axisGreaterThan(Gamepad.Axis.RIGHT_TRIGGER.value, threshold, loop);
return m_hid.axisGreaterThan(Gamepad.Axis.RIGHT_TRIGGER.value, threshold, loop);
}
/**
@@ -739,7 +771,7 @@ public class CommandGamepad extends CommandGenericHID {
* loop}.
*/
public Trigger rightTrigger(double threshold) {
return rightTrigger(threshold, getScheduler().getDefaultEventLoop());
return rightTrigger(threshold, m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -761,7 +793,7 @@ public class CommandGamepad extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftX() {
return m_hid.getLeftX();
return m_gamepad.getLeftX();
}
/**
@@ -770,7 +802,7 @@ public class CommandGamepad extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftY() {
return m_hid.getLeftY();
return m_gamepad.getLeftY();
}
/**
@@ -779,7 +811,7 @@ public class CommandGamepad extends CommandGenericHID {
* @return The axis value.
*/
public double getRightX() {
return m_hid.getRightX();
return m_gamepad.getRightX();
}
/**
@@ -788,7 +820,7 @@ public class CommandGamepad extends CommandGenericHID {
* @return The axis value.
*/
public double getRightY() {
return m_hid.getRightY();
return m_gamepad.getRightY();
}
/**
@@ -798,7 +830,7 @@ public class CommandGamepad extends CommandGenericHID {
* @return The axis value.
*/
public double getLeftTriggerAxis() {
return m_hid.getLeftTriggerAxis();
return m_gamepad.getLeftTriggerAxis();
}
/**
@@ -808,6 +840,6 @@ public class CommandGamepad extends CommandGenericHID {
* @return The axis value.
*/
public double getRightTriggerAxis() {
return m_hid.getRightTriggerAxis();
return m_gamepad.getRightTriggerAxis();
}
}

View File

@@ -5,11 +5,16 @@
package org.wpilib.command3.button;
import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.wpilib.command3.Scheduler;
import org.wpilib.command3.Trigger;
import org.wpilib.driverstation.DriverStation;
import org.wpilib.driverstation.GenericHID;
import org.wpilib.driverstation.POVDirection;
import org.wpilib.driverstation.internal.DriverStationBackend;
import org.wpilib.event.EventLoop;
import org.wpilib.math.util.Pair;
@@ -18,7 +23,10 @@ import org.wpilib.math.util.Pair;
*
* @see GenericHID
*/
public class CommandGenericHID {
public final class CommandGenericHID {
private static final Lock m_hidsLock = new ReentrantLock();
private static final Map<Scheduler, CommandGenericHID[]> m_hids = new IdentityHashMap<>();
private final Scheduler m_scheduler;
private final GenericHID m_hid;
private final Map<EventLoop, Map<Integer, Trigger>> m_buttonCache = new HashMap<>();
@@ -38,7 +46,65 @@ public class CommandGenericHID {
*/
public CommandGenericHID(Scheduler scheduler, int port) {
m_scheduler = scheduler;
m_hid = new GenericHID(port);
m_hid = DriverStation.getGenericHID(port);
}
/**
* Construct an instance of a device with a GenericHID object.
*
* @param scheduler The scheduler that should execute the triggered commands.
* @param hid The GenericHID object to use for this command HID.
*/
public CommandGenericHID(Scheduler scheduler, GenericHID hid) {
m_scheduler = scheduler;
m_hid = hid;
}
/**
* Construct an instance of a device with a GenericHID object.
*
* @param hid The GenericHID object to use for this command HID.
*/
public CommandGenericHID(GenericHID hid) {
this(Scheduler.getDefault(), hid);
}
/**
* Gets the CommandGenericHID object for the given scheduler and port. CommandGenericHID objects
* are cached, so this will always return the same object for the same scheduler and port.
*
* @param scheduler The scheduler that should execute the triggered commands.
* @param port The port index on the Driver Station that the device is plugged into.
* @return The CommandGenericHID object for the given scheduler and port.
*/
public static CommandGenericHID getCommandGenericHID(Scheduler scheduler, int port) {
DriverStation.getGenericHID(port);
m_hidsLock.lock();
try {
CommandGenericHID[] hids =
m_hids.computeIfAbsent(
scheduler, k -> new CommandGenericHID[DriverStationBackend.JOYSTICK_PORTS]);
CommandGenericHID toRet = hids[port];
if (toRet == null) {
toRet = new CommandGenericHID(scheduler, port);
hids[port] = toRet;
}
return toRet;
} finally {
m_hidsLock.unlock();
}
}
/**
* Gets the CommandGenericHID object for the given port using the default scheduler.
* CommandGenericHID objects are cached, so this will always return the same object for the same
* port.
*
* @param port The port index on the Driver Station that the device is plugged into.
* @return The CommandGenericHID object for the given port.
*/
public static CommandGenericHID getCommandGenericHID(int port) {
return getCommandGenericHID(Scheduler.getDefault(), port);
}
/**
@@ -337,7 +403,7 @@ public class CommandGenericHID {
*
* @return the scheduler that should execute the triggered commands
*/
protected final Scheduler getScheduler() {
Scheduler getScheduler() {
return m_scheduler;
}
}

View File

@@ -6,6 +6,7 @@ package org.wpilib.command3.button;
import org.wpilib.command3.Scheduler;
import org.wpilib.command3.Trigger;
import org.wpilib.driverstation.DriverStation;
import org.wpilib.driverstation.Joystick;
import org.wpilib.event.EventLoop;
@@ -14,8 +15,9 @@ import org.wpilib.event.EventLoop;
*
* @see Joystick
*/
public class CommandJoystick extends CommandGenericHID {
private final Joystick m_hid;
public class CommandJoystick {
private final CommandGenericHID m_hid;
private final Joystick m_joystick;
/**
* Construct an instance of a controller.
@@ -23,8 +25,7 @@ public class CommandJoystick extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandJoystick(int port) {
super(port);
m_hid = new Joystick(port);
this(Scheduler.getDefault(), port);
}
/**
@@ -34,20 +35,28 @@ public class CommandJoystick extends CommandGenericHID {
* @param port The port index on the Driver Station that the controller is plugged into.
*/
public CommandJoystick(Scheduler scheduler, int port) {
super(scheduler, port);
m_hid = new Joystick(port);
m_hid = CommandGenericHID.getCommandGenericHID(scheduler, port);
m_joystick = new Joystick(DriverStation.getGenericHID(port));
}
/**
* Get the underlying GenericHID object.
* Get the underlying CommandGenericHID object.
*
* @return the wrapped GenericHID object
* @return the wrapped CommandGenericHID object
*/
@Override
public Joystick getHID() {
public CommandGenericHID getHID() {
return m_hid;
}
/**
* Get the underlying Joystick object.
*
* @return the wrapped Joystick object
*/
public Joystick getJoystick() {
return m_joystick;
}
/**
* Constructs an event instance around the trigger button's digital signal.
*
@@ -56,7 +65,7 @@ public class CommandJoystick extends CommandGenericHID {
* @see #trigger(EventLoop)
*/
public Trigger trigger() {
return trigger(getScheduler().getDefaultEventLoop());
return trigger(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -67,7 +76,7 @@ public class CommandJoystick extends CommandGenericHID {
* given loop.
*/
public Trigger trigger(EventLoop loop) {
return button(Joystick.ButtonType.kTrigger.value, loop);
return m_hid.button(Joystick.ButtonType.kTrigger.value, loop);
}
/**
@@ -78,7 +87,7 @@ public class CommandJoystick extends CommandGenericHID {
* @see #top(EventLoop)
*/
public Trigger top() {
return top(getScheduler().getDefaultEventLoop());
return top(m_hid.getScheduler().getDefaultEventLoop());
}
/**
@@ -89,7 +98,7 @@ public class CommandJoystick extends CommandGenericHID {
* loop.
*/
public Trigger top(EventLoop loop) {
return button(Joystick.ButtonType.kTop.value, loop);
return m_hid.button(Joystick.ButtonType.kTop.value, loop);
}
/**
@@ -98,7 +107,7 @@ public class CommandJoystick extends CommandGenericHID {
* @param channel The channel to set the axis to.
*/
public void setXChannel(int channel) {
m_hid.setXChannel(channel);
m_joystick.setXChannel(channel);
}
/**
@@ -107,7 +116,7 @@ public class CommandJoystick extends CommandGenericHID {
* @param channel The channel to set the axis to.
*/
public void setYChannel(int channel) {
m_hid.setYChannel(channel);
m_joystick.setYChannel(channel);
}
/**
@@ -116,7 +125,7 @@ public class CommandJoystick extends CommandGenericHID {
* @param channel The channel to set the axis to.
*/
public void setZChannel(int channel) {
m_hid.setZChannel(channel);
m_joystick.setZChannel(channel);
}
/**
@@ -125,7 +134,7 @@ public class CommandJoystick extends CommandGenericHID {
* @param channel The channel to set the axis to.
*/
public void setThrottleChannel(int channel) {
m_hid.setThrottleChannel(channel);
m_joystick.setThrottleChannel(channel);
}
/**
@@ -134,7 +143,7 @@ public class CommandJoystick extends CommandGenericHID {
* @param channel The channel to set the axis to.
*/
public void setTwistChannel(int channel) {
m_hid.setTwistChannel(channel);
m_joystick.setTwistChannel(channel);
}
/**
@@ -143,7 +152,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The channel for the axis.
*/
public int getXChannel() {
return m_hid.getXChannel();
return m_joystick.getXChannel();
}
/**
@@ -152,7 +161,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The channel for the axis.
*/
public int getYChannel() {
return m_hid.getYChannel();
return m_joystick.getYChannel();
}
/**
@@ -161,7 +170,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The channel for the axis.
*/
public int getZChannel() {
return m_hid.getZChannel();
return m_joystick.getZChannel();
}
/**
@@ -170,7 +179,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The channel for the axis.
*/
public int getTwistChannel() {
return m_hid.getTwistChannel();
return m_joystick.getTwistChannel();
}
/**
@@ -179,7 +188,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The channel for the axis.
*/
public int getThrottleChannel() {
return m_hid.getThrottleChannel();
return m_joystick.getThrottleChannel();
}
/**
@@ -191,7 +200,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return the x position
*/
public double getX() {
return m_hid.getX();
return m_joystick.getX();
}
/**
@@ -203,7 +212,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return the y position
*/
public double getY() {
return m_hid.getY();
return m_joystick.getY();
}
/**
@@ -212,7 +221,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return the z position
*/
public double getZ() {
return m_hid.getZ();
return m_joystick.getZ();
}
/**
@@ -222,7 +231,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The Twist value of the joystick.
*/
public double getTwist() {
return m_hid.getTwist();
return m_joystick.getTwist();
}
/**
@@ -232,7 +241,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The Throttle value of the joystick.
*/
public double getThrottle() {
return m_hid.getThrottle();
return m_joystick.getThrottle();
}
/**
@@ -242,7 +251,7 @@ public class CommandJoystick extends CommandGenericHID {
* @return The magnitude of the direction vector
*/
public double getMagnitude() {
return m_hid.getMagnitude();
return m_joystick.getMagnitude();
}
/**
@@ -260,7 +269,7 @@ public class CommandJoystick extends CommandGenericHID {
//
// It's rotated 90 degrees CCW (y is negated and the arguments are reversed)
// so that 0 radians is forward.
return m_hid.getDirectionRadians();
return m_joystick.getDirectionRadians();
}
/**
@@ -270,6 +279,6 @@ public class CommandJoystick extends CommandGenericHID {
* @return The direction of the vector in degrees
*/
public double getDirectionDegrees() {
return m_hid.getDirectionDegrees();
return m_joystick.getDirectionDegrees();
}
}

View File

@@ -8,6 +8,7 @@ import static org.wpilib.util.ErrorMessages.requireNonNullParam;
import org.wpilib.command3.Trigger;
import org.wpilib.driverstation.GenericHID;
import org.wpilib.driverstation.HIDDevice;
/** A {@link Trigger} that gets its state from a {@link GenericHID}. */
public class JoystickButton extends Trigger {
@@ -21,4 +22,14 @@ public class JoystickButton extends Trigger {
super(() -> joystick.getRawButton(buttonNumber));
requireNonNullParam(joystick, "joystick", "JoystickButton");
}
/**
* Creates a joystick button for triggering commands.
*
* @param joystick The HIDDevice object that has the button
* @param buttonNumber The button number (see {@link GenericHID#getRawButton(int) }
*/
public JoystickButton(HIDDevice joystick, int buttonNumber) {
this(requireNonNullParam(joystick, "joystick", "JoystickButton").getHID(), buttonNumber);
}
}

View File

@@ -8,6 +8,7 @@ import static org.wpilib.util.ErrorMessages.requireNonNullParam;
import org.wpilib.command3.Trigger;
import org.wpilib.driverstation.GenericHID;
import org.wpilib.driverstation.HIDDevice;
import org.wpilib.driverstation.POVDirection;
/** A {@link Trigger} that gets its state from a POV on a {@link GenericHID}. */
@@ -33,4 +34,25 @@ public class POVButton extends Trigger {
public POVButton(GenericHID joystick, POVDirection angle) {
this(joystick, angle, 0);
}
/**
* Creates a POV button for triggering commands.
*
* @param joystick The HIDDevice object that has the POV
* @param angle The desired angle
* @param povNumber The POV number (see {@link GenericHID#getPOV(int)})
*/
public POVButton(HIDDevice joystick, POVDirection angle, int povNumber) {
this(requireNonNullParam(joystick, "joystick", "POVButton").getHID(), angle, povNumber);
}
/**
* Creates a POV button for triggering commands. By default, acts on POV 0
*
* @param joystick The HIDDevice object that has the POV
* @param angle The desired angle
*/
public POVButton(HIDDevice joystick, POVDirection angle) {
this(joystick, angle, 0);
}
}