mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[hal,wpilib] Add support for joystick outputs (#8385)
Support joystick outputs, including Rumble and LEDs. Also requires an update to Joystick descriptors, as that has also changed in mrccomm to support showing what outputs are supported.
This commit is contained in:
@@ -20,37 +20,65 @@ class GenericHIDTest {
|
||||
|
||||
for (int i = 0; i <= 100; i++) {
|
||||
double rumbleValue = i / 100.0;
|
||||
hid.setRumble(RumbleType.kBothRumble, rumbleValue);
|
||||
hid.setRumble(RumbleType.kLeftRumble, rumbleValue);
|
||||
assertEquals(rumbleValue, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
|
||||
hid.setRumble(RumbleType.kRightRumble, rumbleValue);
|
||||
assertEquals(rumbleValue, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
|
||||
hid.setRumble(RumbleType.kLeftTriggerRumble, rumbleValue);
|
||||
assertEquals(rumbleValue, sim.getRumble(RumbleType.kLeftTriggerRumble), kEpsilon);
|
||||
|
||||
hid.setRumble(RumbleType.kRightTriggerRumble, rumbleValue);
|
||||
assertEquals(rumbleValue, sim.getRumble(RumbleType.kRightTriggerRumble), kEpsilon);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testRumbleTypes() {
|
||||
GenericHID hid = new GenericHID(0);
|
||||
GenericHIDSim sim = new GenericHIDSim(0);
|
||||
final GenericHIDSim sim = new GenericHIDSim(0);
|
||||
|
||||
// Make sure both are off
|
||||
hid.setRumble(RumbleType.kBothRumble, 0);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kBothRumble), kEpsilon);
|
||||
|
||||
// test both
|
||||
hid.setRumble(RumbleType.kBothRumble, 1);
|
||||
assertEquals(1, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
assertEquals(1, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
hid.setRumble(RumbleType.kBothRumble, 0);
|
||||
// Make sure all are off
|
||||
hid.setRumble(RumbleType.kLeftRumble, 0);
|
||||
hid.setRumble(RumbleType.kRightRumble, 0);
|
||||
hid.setRumble(RumbleType.kLeftTriggerRumble, 0);
|
||||
hid.setRumble(RumbleType.kRightTriggerRumble, 0);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftTriggerRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightTriggerRumble), kEpsilon);
|
||||
|
||||
// test left only
|
||||
hid.setRumble(RumbleType.kLeftRumble, 1);
|
||||
assertEquals(1, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftTriggerRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightTriggerRumble), kEpsilon);
|
||||
hid.setRumble(RumbleType.kLeftRumble, 0);
|
||||
|
||||
// test right only
|
||||
hid.setRumble(RumbleType.kRightRumble, 1);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
assertEquals(1, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftTriggerRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightTriggerRumble), kEpsilon);
|
||||
hid.setRumble(RumbleType.kRightRumble, 0);
|
||||
|
||||
// test left trigger only
|
||||
hid.setRumble(RumbleType.kLeftTriggerRumble, 1);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
assertEquals(1, sim.getRumble(RumbleType.kLeftTriggerRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightTriggerRumble), kEpsilon);
|
||||
hid.setRumble(RumbleType.kLeftTriggerRumble, 0);
|
||||
|
||||
// test right trigger only
|
||||
hid.setRumble(RumbleType.kRightTriggerRumble, 1);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kRightRumble), kEpsilon);
|
||||
assertEquals(0, sim.getRumble(RumbleType.kLeftTriggerRumble), kEpsilon);
|
||||
assertEquals(1, sim.getRumble(RumbleType.kRightTriggerRumble), kEpsilon);
|
||||
hid.setRumble(RumbleType.kRightTriggerRumble, 0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user