mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-02 02:51:42 +00:00
[wpilib] Split DriverStation into smaller classes (#8628)
This commit is contained in:
@@ -2,14 +2,13 @@
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
#include "wpi/driverstation/DriverStation.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <tuple>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "wpi/driverstation/Joystick.hpp"
|
||||
#include "wpi/driverstation/internal/DriverStationBackend.hpp"
|
||||
#include "wpi/simulation/DriverStationSim.hpp"
|
||||
#include "wpi/simulation/SimHooks.hpp"
|
||||
|
||||
@@ -26,7 +25,7 @@ TEST_P(IsJoystickConnectedParametersTest, IsJoystickConnected) {
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
|
||||
ASSERT_EQ(std::get<3>(GetParam()),
|
||||
wpi::DriverStation::IsJoystickConnected(1));
|
||||
wpi::internal::DriverStationBackend::IsJoystickConnected(1));
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(IsConnectedTests, IsJoystickConnectedParametersTest,
|
||||
@@ -47,14 +46,16 @@ TEST_P(JoystickConnectionWarningTest, JoystickConnectionWarnings) {
|
||||
// Set FMS and Silence settings
|
||||
wpi::sim::DriverStationSim::SetFmsAttached(std::get<0>(GetParam()));
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::DriverStation::SilenceJoystickConnectionWarning(std::get<1>(GetParam()));
|
||||
wpi::internal::DriverStationBackend::SilenceJoystickConnectionWarning(
|
||||
std::get<1>(GetParam()));
|
||||
|
||||
// Create joystick and attempt to retrieve button.
|
||||
wpi::Joystick joystick(0);
|
||||
joystick.GetRawButton(1);
|
||||
|
||||
wpi::sim::StepTiming(1_s);
|
||||
EXPECT_EQ(wpi::DriverStation::IsJoystickConnectionWarningSilenced(),
|
||||
EXPECT_EQ(wpi::internal::DriverStationBackend::
|
||||
IsJoystickConnectionWarningSilenced(),
|
||||
std::get<2>(GetParam()));
|
||||
EXPECT_EQ(::testing::internal::GetCapturedStderr().substr(
|
||||
0, std::get<3>(GetParam()).size()),
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "callback_helpers/TestCallbackHelpers.hpp"
|
||||
#include "wpi/driverstation/DriverStation.hpp"
|
||||
#include "wpi/driverstation/MatchState.hpp"
|
||||
#include "wpi/driverstation/RobotState.hpp"
|
||||
#include "wpi/driverstation/internal/DriverStationBackend.hpp"
|
||||
#include "wpi/hal/DriverStationTypes.h"
|
||||
#include "wpi/hal/HAL.h"
|
||||
|
||||
@@ -18,7 +20,7 @@ TEST(DriverStationTest, Enabled) {
|
||||
HAL_Initialize(500, 0);
|
||||
DriverStationSim::ResetData();
|
||||
|
||||
EXPECT_FALSE(DriverStation::IsEnabled());
|
||||
EXPECT_FALSE(RobotState::IsEnabled());
|
||||
BooleanCallback callback;
|
||||
auto cb =
|
||||
DriverStationSim::RegisterEnabledCallback(callback.GetCallback(), false);
|
||||
@@ -26,7 +28,7 @@ TEST(DriverStationTest, Enabled) {
|
||||
DriverStationSim::SetEnabled(true);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_TRUE(DriverStationSim::GetEnabled());
|
||||
EXPECT_TRUE(DriverStation::IsEnabled());
|
||||
EXPECT_TRUE(RobotState::IsEnabled());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_TRUE(callback.GetLastValue());
|
||||
}
|
||||
@@ -35,15 +37,15 @@ TEST(DriverStationTest, AutonomousMode) {
|
||||
HAL_Initialize(500, 0);
|
||||
DriverStationSim::ResetData();
|
||||
|
||||
EXPECT_FALSE(DriverStation::IsAutonomous());
|
||||
EXPECT_FALSE(RobotState::IsAutonomous());
|
||||
EnumCallback callback;
|
||||
auto cb = DriverStationSim::RegisterRobotModeCallback(callback.GetCallback(),
|
||||
false);
|
||||
DriverStationSim::SetRobotMode(HAL_ROBOT_MODE_AUTONOMOUS);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(DriverStationSim::GetRobotMode(), HAL_ROBOT_MODE_AUTONOMOUS);
|
||||
EXPECT_TRUE(DriverStation::IsAutonomous());
|
||||
EXPECT_EQ(DriverStation::GetRobotMode(), RobotMode::AUTONOMOUS);
|
||||
EXPECT_TRUE(RobotState::IsAutonomous());
|
||||
EXPECT_EQ(RobotState::GetRobotMode(), RobotMode::AUTONOMOUS);
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(callback.GetLastValue(), HAL_ROBOT_MODE_AUTONOMOUS);
|
||||
}
|
||||
@@ -52,15 +54,15 @@ TEST(DriverStationTest, Mode) {
|
||||
HAL_Initialize(500, 0);
|
||||
DriverStationSim::ResetData();
|
||||
|
||||
EXPECT_FALSE(DriverStation::IsTest());
|
||||
EXPECT_FALSE(RobotState::IsTest());
|
||||
EnumCallback callback;
|
||||
auto cb = DriverStationSim::RegisterRobotModeCallback(callback.GetCallback(),
|
||||
false);
|
||||
DriverStationSim::SetRobotMode(HAL_ROBOT_MODE_TEST);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(DriverStationSim::GetRobotMode(), HAL_ROBOT_MODE_TEST);
|
||||
EXPECT_TRUE(DriverStation::IsTest());
|
||||
EXPECT_EQ(DriverStation::GetRobotMode(), RobotMode::TEST);
|
||||
EXPECT_TRUE(RobotState::IsTest());
|
||||
EXPECT_EQ(RobotState::GetRobotMode(), RobotMode::TEST);
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(callback.GetLastValue(), HAL_ROBOT_MODE_TEST);
|
||||
}
|
||||
@@ -69,14 +71,14 @@ TEST(DriverStationTest, Estop) {
|
||||
HAL_Initialize(500, 0);
|
||||
DriverStationSim::ResetData();
|
||||
|
||||
EXPECT_FALSE(DriverStation::IsEStopped());
|
||||
EXPECT_FALSE(RobotState::IsEStopped());
|
||||
BooleanCallback callback;
|
||||
auto cb =
|
||||
DriverStationSim::RegisterEStopCallback(callback.GetCallback(), false);
|
||||
DriverStationSim::SetEStop(true);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_TRUE(DriverStationSim::GetEStop());
|
||||
EXPECT_TRUE(DriverStation::IsEStopped());
|
||||
EXPECT_TRUE(RobotState::IsEStopped());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_TRUE(callback.GetLastValue());
|
||||
}
|
||||
@@ -85,14 +87,14 @@ TEST(DriverStationTest, FmsAttached) {
|
||||
HAL_Initialize(500, 0);
|
||||
DriverStationSim::ResetData();
|
||||
|
||||
EXPECT_FALSE(DriverStation::IsFMSAttached());
|
||||
EXPECT_FALSE(RobotState::IsFMSAttached());
|
||||
BooleanCallback callback;
|
||||
auto cb = DriverStationSim::RegisterFmsAttachedCallback(
|
||||
callback.GetCallback(), false);
|
||||
DriverStationSim::SetFmsAttached(true);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_TRUE(DriverStationSim::GetFmsAttached());
|
||||
EXPECT_TRUE(DriverStation::IsFMSAttached());
|
||||
EXPECT_TRUE(RobotState::IsFMSAttached());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_TRUE(callback.GetLastValue());
|
||||
}
|
||||
@@ -100,21 +102,21 @@ TEST(DriverStationTest, FmsAttached) {
|
||||
TEST(DriverStationTest, DsAttached) {
|
||||
HAL_Initialize(500, 0);
|
||||
DriverStationSim::ResetData();
|
||||
DriverStation::RefreshData();
|
||||
wpi::internal::DriverStationBackend::RefreshData();
|
||||
|
||||
EXPECT_FALSE(DriverStationSim::GetDsAttached());
|
||||
EXPECT_FALSE(DriverStation::IsDSAttached());
|
||||
EXPECT_FALSE(RobotState::IsDSAttached());
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_TRUE(DriverStationSim::GetDsAttached());
|
||||
EXPECT_TRUE(DriverStation::IsDSAttached());
|
||||
EXPECT_TRUE(RobotState::IsDSAttached());
|
||||
|
||||
BooleanCallback callback;
|
||||
auto cb = DriverStationSim::RegisterDsAttachedCallback(callback.GetCallback(),
|
||||
false);
|
||||
DriverStationSim::SetDsAttached(false);
|
||||
DriverStation::RefreshData();
|
||||
wpi::internal::DriverStationBackend::RefreshData();
|
||||
EXPECT_FALSE(DriverStationSim::GetDsAttached());
|
||||
EXPECT_FALSE(DriverStation::IsDSAttached());
|
||||
EXPECT_FALSE(RobotState::IsDSAttached());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_FALSE(callback.GetLastValue());
|
||||
}
|
||||
@@ -136,8 +138,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_FALSE(DriverStation::GetAlliance().has_value());
|
||||
EXPECT_FALSE(DriverStation::GetLocation().has_value());
|
||||
EXPECT_FALSE(MatchState::GetAlliance().has_value());
|
||||
EXPECT_FALSE(MatchState::GetLocation().has_value());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
|
||||
@@ -146,8 +148,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::Alliance::BLUE, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(1, DriverStation::GetLocation());
|
||||
EXPECT_EQ(Alliance::BLUE, MatchState::GetAlliance());
|
||||
EXPECT_EQ(1, MatchState::GetLocation());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
|
||||
@@ -156,8 +158,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::Alliance::BLUE, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(2, DriverStation::GetLocation());
|
||||
EXPECT_EQ(Alliance::BLUE, MatchState::GetAlliance());
|
||||
EXPECT_EQ(2, MatchState::GetLocation());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
|
||||
@@ -166,8 +168,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::Alliance::BLUE, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(3, DriverStation::GetLocation());
|
||||
EXPECT_EQ(Alliance::BLUE, MatchState::GetAlliance());
|
||||
EXPECT_EQ(3, MatchState::GetLocation());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
|
||||
@@ -176,8 +178,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::Alliance::RED, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(1, DriverStation::GetLocation());
|
||||
EXPECT_EQ(Alliance::RED, MatchState::GetAlliance());
|
||||
EXPECT_EQ(1, MatchState::GetLocation());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
|
||||
@@ -186,8 +188,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::Alliance::RED, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(2, DriverStation::GetLocation());
|
||||
EXPECT_EQ(Alliance::RED, MatchState::GetAlliance());
|
||||
EXPECT_EQ(2, MatchState::GetLocation());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
|
||||
@@ -196,8 +198,8 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::Alliance::RED, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(3, DriverStation::GetLocation());
|
||||
EXPECT_EQ(Alliance::RED, MatchState::GetAlliance());
|
||||
EXPECT_EQ(3, MatchState::GetLocation());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(allianceStation, callback.GetLastValue());
|
||||
}
|
||||
@@ -208,7 +210,7 @@ TEST(DriverStationTest, ReplayNumber) {
|
||||
|
||||
DriverStationSim::SetReplayNumber(4);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(4, DriverStation::GetReplayNumber());
|
||||
EXPECT_EQ(4, MatchState::GetReplayNumber());
|
||||
}
|
||||
|
||||
TEST(DriverStationTest, MatchNumber) {
|
||||
@@ -217,7 +219,7 @@ TEST(DriverStationTest, MatchNumber) {
|
||||
|
||||
DriverStationSim::SetMatchNumber(3);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(3, DriverStation::GetMatchNumber());
|
||||
EXPECT_EQ(3, MatchState::GetMatchNumber());
|
||||
}
|
||||
|
||||
TEST(DriverStationTest, MatchTime) {
|
||||
@@ -231,7 +233,7 @@ TEST(DriverStationTest, MatchTime) {
|
||||
DriverStationSim::SetMatchTime(kTestTime);
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(kTestTime, DriverStationSim::GetMatchTime());
|
||||
EXPECT_EQ(kTestTime, DriverStation::GetMatchTime().value());
|
||||
EXPECT_EQ(kTestTime, MatchState::GetMatchTime().value());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(kTestTime, callback.GetLastValue());
|
||||
}
|
||||
@@ -243,7 +245,7 @@ TEST(DriverStationTest, SetGameData) {
|
||||
constexpr auto message = "Hello";
|
||||
DriverStationSim::SetGameData(message);
|
||||
DriverStationSim::NotifyNewData();
|
||||
auto gameData = DriverStation::GetGameData();
|
||||
auto gameData = MatchState::GetGameData();
|
||||
ASSERT_TRUE(gameData.has_value());
|
||||
EXPECT_EQ(message, gameData.value());
|
||||
}
|
||||
@@ -254,7 +256,7 @@ TEST(DriverStationTest, SetGameDataEmpty) {
|
||||
|
||||
DriverStationSim::SetGameData("");
|
||||
DriverStationSim::NotifyNewData();
|
||||
auto gameData = DriverStation::GetGameData();
|
||||
auto gameData = MatchState::GetGameData();
|
||||
EXPECT_FALSE(gameData.has_value());
|
||||
}
|
||||
|
||||
@@ -265,5 +267,5 @@ TEST(DriverStationTest, SetEventName) {
|
||||
constexpr auto message = "The Best Event";
|
||||
DriverStationSim::SetEventName(message);
|
||||
DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(message, DriverStation::GetEventName());
|
||||
EXPECT_EQ(message, MatchState::GetEventName());
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import threading
|
||||
from wpilib import simulation as wsim
|
||||
from wpimath.units import seconds
|
||||
from wpilib.opmoderobot import OpModeRobot
|
||||
from wpilib import OpMode, DriverStation
|
||||
from wpilib import OpMode, RobotState
|
||||
from hal._wpiHal import RobotMode
|
||||
from wpiutil import Color
|
||||
|
||||
@@ -55,7 +55,7 @@ def sim_timing_setup():
|
||||
wsim.setProgramStarted(False)
|
||||
yield
|
||||
wsim.resumeTiming()
|
||||
DriverStation.clearOpModes()
|
||||
RobotState.clearOpModes()
|
||||
|
||||
|
||||
def test_add_op_mode():
|
||||
|
||||
Reference in New Issue
Block a user