mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +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:
@@ -60,6 +60,7 @@ TEST_P(AllianceTest, Alliance) {
|
||||
case HAL_AllianceStationID_kBlue1:
|
||||
case HAL_AllianceStationID_kBlue2:
|
||||
case HAL_AllianceStationID_kBlue3:
|
||||
case HAL_AllianceStationID_kUnknown:
|
||||
isRed = false;
|
||||
break;
|
||||
case HAL_AllianceStationID_kRed1:
|
||||
@@ -76,7 +77,8 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
testing::Values<HAL_AllianceStationID>(
|
||||
HAL_AllianceStationID_kRed1, HAL_AllianceStationID_kRed2,
|
||||
HAL_AllianceStationID_kRed3, HAL_AllianceStationID_kBlue1,
|
||||
HAL_AllianceStationID_kBlue2, HAL_AllianceStationID_kBlue3),
|
||||
HAL_AllianceStationID_kBlue2, HAL_AllianceStationID_kBlue3,
|
||||
HAL_AllianceStationID_kUnknown),
|
||||
[](const testing::TestParamInfo<AllianceTest::ParamType>& info) {
|
||||
switch (info.param) {
|
||||
case HAL_AllianceStationID_kBlue1:
|
||||
@@ -91,6 +93,8 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
return std::string{"Red2"};
|
||||
case HAL_AllianceStationID_kRed3:
|
||||
return std::string{"Red3"};
|
||||
case HAL_AllianceStationID_kUnknown:
|
||||
return std::string{"Unknown"};
|
||||
}
|
||||
return std::string{"Error"};
|
||||
});
|
||||
|
||||
@@ -74,6 +74,9 @@ TEST_P(AllianceTest, Alliance) {
|
||||
case HAL_AllianceStationID_kRed3:
|
||||
expected = 'R';
|
||||
break;
|
||||
case HAL_AllianceStationID_kUnknown:
|
||||
expected = 'U';
|
||||
break;
|
||||
}
|
||||
EXPECT_EQ(expected, gString.at(0));
|
||||
}
|
||||
@@ -83,7 +86,8 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
testing::Values<HAL_AllianceStationID>(
|
||||
HAL_AllianceStationID_kRed1, HAL_AllianceStationID_kRed2,
|
||||
HAL_AllianceStationID_kRed3, HAL_AllianceStationID_kBlue1,
|
||||
HAL_AllianceStationID_kBlue2, HAL_AllianceStationID_kBlue3),
|
||||
HAL_AllianceStationID_kBlue2, HAL_AllianceStationID_kBlue3,
|
||||
HAL_AllianceStationID_kUnknown),
|
||||
[](const testing::TestParamInfo<AllianceTest::ParamType>& info) {
|
||||
switch (info.param) {
|
||||
case HAL_AllianceStationID_kBlue1:
|
||||
@@ -98,6 +102,8 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
return std::string{"Red2"};
|
||||
case HAL_AllianceStationID_kRed3:
|
||||
return std::string{"Red3"};
|
||||
case HAL_AllianceStationID_kUnknown:
|
||||
return std::string{"Unknown"};
|
||||
}
|
||||
return std::string{"Error"};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user