mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpilib] DriverStation: Change alliance station to use optional (#5229)
Many teams have issues trying to read the DS too early. By switching to an optional, we cause teams to check 2 things. Either 1) they explicitly check, and their code is correct, or 2) they just read .value() and their code reboots in a loop. However, because the DS will eventually connect, this 2nd case is ok, and should theoretically be undetectable on the field.
This commit is contained in:
@@ -134,13 +134,23 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
|
||||
try (CallbackStore cb = DriverStationSim.registerAllianceStationIdCallback(callback, false)) {
|
||||
// Unknown
|
||||
allianceStation = AllianceStationID.Unknown;
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertFalse(DriverStation.getAlliance().isPresent());
|
||||
assertFalse(DriverStation.getLocation().isPresent());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
// B1
|
||||
allianceStation = AllianceStationID.Blue1;
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.Blue, DriverStation.getAlliance());
|
||||
assertEquals(1, DriverStation.getLocation());
|
||||
assertEquals(DriverStation.Alliance.Blue, DriverStation.getAlliance().get());
|
||||
assertEquals(1, DriverStation.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -149,8 +159,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.Blue, DriverStation.getAlliance());
|
||||
assertEquals(2, DriverStation.getLocation());
|
||||
assertEquals(DriverStation.Alliance.Blue, DriverStation.getAlliance().get());
|
||||
assertEquals(2, DriverStation.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -159,8 +169,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.Blue, DriverStation.getAlliance());
|
||||
assertEquals(3, DriverStation.getLocation());
|
||||
assertEquals(DriverStation.Alliance.Blue, DriverStation.getAlliance().get());
|
||||
assertEquals(3, DriverStation.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -169,8 +179,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.Red, DriverStation.getAlliance());
|
||||
assertEquals(1, DriverStation.getLocation());
|
||||
assertEquals(DriverStation.Alliance.Red, DriverStation.getAlliance().get());
|
||||
assertEquals(1, DriverStation.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -179,8 +189,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.Red, DriverStation.getAlliance());
|
||||
assertEquals(2, DriverStation.getLocation());
|
||||
assertEquals(DriverStation.Alliance.Red, DriverStation.getAlliance().get());
|
||||
assertEquals(2, DriverStation.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -189,8 +199,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.Red, DriverStation.getAlliance());
|
||||
assertEquals(3, DriverStation.getLocation());
|
||||
assertEquals(DriverStation.Alliance.Red, DriverStation.getAlliance().get());
|
||||
assertEquals(3, DriverStation.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user