[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

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