diff --git a/wpilibc/src/main/native/cpp/simulation/RoboRioSim.cpp b/wpilibc/src/main/native/cpp/simulation/RoboRioSim.cpp index 0c7a88e02b..0d1d104f59 100644 --- a/wpilibc/src/main/native/cpp/simulation/RoboRioSim.cpp +++ b/wpilibc/src/main/native/cpp/simulation/RoboRioSim.cpp @@ -39,10 +39,12 @@ std::unique_ptr RoboRioSim::RegisterVInVoltageCallback( return store; } -double RoboRioSim::GetVInVoltage() { return HALSIM_GetRoboRioVInVoltage(); } +units::volt_t RoboRioSim::GetVInVoltage() { + return units::volt_t(HALSIM_GetRoboRioVInVoltage()); +} -void RoboRioSim::SetVInVoltage(double vInVoltage) { - HALSIM_SetRoboRioVInVoltage(vInVoltage); +void RoboRioSim::SetVInVoltage(units::volt_t vInVoltage) { + HALSIM_SetRoboRioVInVoltage(vInVoltage.to()); } std::unique_ptr RoboRioSim::RegisterVInCurrentCallback( @@ -54,10 +56,12 @@ std::unique_ptr RoboRioSim::RegisterVInCurrentCallback( return store; } -double RoboRioSim::GetVInCurrent() { return HALSIM_GetRoboRioVInCurrent(); } +units::ampere_t RoboRioSim::GetVInCurrent() { + return units::ampere_t(HALSIM_GetRoboRioVInCurrent()); +} -void RoboRioSim::SetVInCurrent(double vInCurrent) { - HALSIM_SetRoboRioVInCurrent(vInCurrent); +void RoboRioSim::SetVInCurrent(units::ampere_t vInCurrent) { + HALSIM_SetRoboRioVInCurrent(vInCurrent.to()); } std::unique_ptr RoboRioSim::RegisterUserVoltage6VCallback( @@ -69,12 +73,12 @@ std::unique_ptr RoboRioSim::RegisterUserVoltage6VCallback( return store; } -double RoboRioSim::GetUserVoltage6V() { - return HALSIM_GetRoboRioUserVoltage6V(); +units::volt_t RoboRioSim::GetUserVoltage6V() { + return units::volt_t(HALSIM_GetRoboRioUserVoltage6V()); } -void RoboRioSim::SetUserVoltage6V(double userVoltage6V) { - HALSIM_SetRoboRioUserVoltage6V(userVoltage6V); +void RoboRioSim::SetUserVoltage6V(units::volt_t userVoltage6V) { + HALSIM_SetRoboRioUserVoltage6V(userVoltage6V.to()); } std::unique_ptr RoboRioSim::RegisterUserCurrent6VCallback( @@ -86,12 +90,12 @@ std::unique_ptr RoboRioSim::RegisterUserCurrent6VCallback( return store; } -double RoboRioSim::GetUserCurrent6V() { - return HALSIM_GetRoboRioUserCurrent6V(); +units::ampere_t RoboRioSim::GetUserCurrent6V() { + return units::ampere_t(HALSIM_GetRoboRioUserCurrent6V()); } -void RoboRioSim::SetUserCurrent6V(double userCurrent6V) { - HALSIM_SetRoboRioUserCurrent6V(userCurrent6V); +void RoboRioSim::SetUserCurrent6V(units::ampere_t userCurrent6V) { + HALSIM_SetRoboRioUserCurrent6V(userCurrent6V.to()); } std::unique_ptr RoboRioSim::RegisterUserActive6VCallback( @@ -118,12 +122,12 @@ std::unique_ptr RoboRioSim::RegisterUserVoltage5VCallback( return store; } -double RoboRioSim::GetUserVoltage5V() { - return HALSIM_GetRoboRioUserVoltage5V(); +units::volt_t RoboRioSim::GetUserVoltage5V() { + return units::volt_t(HALSIM_GetRoboRioUserVoltage5V()); } -void RoboRioSim::SetUserVoltage5V(double userVoltage5V) { - HALSIM_SetRoboRioUserVoltage5V(userVoltage5V); +void RoboRioSim::SetUserVoltage5V(units::volt_t userVoltage5V) { + HALSIM_SetRoboRioUserVoltage5V(userVoltage5V.to()); } std::unique_ptr RoboRioSim::RegisterUserCurrent5VCallback( @@ -135,12 +139,12 @@ std::unique_ptr RoboRioSim::RegisterUserCurrent5VCallback( return store; } -double RoboRioSim::GetUserCurrent5V() { - return HALSIM_GetRoboRioUserCurrent5V(); +units::ampere_t RoboRioSim::GetUserCurrent5V() { + return units::ampere_t(HALSIM_GetRoboRioUserCurrent5V()); } -void RoboRioSim::SetUserCurrent5V(double userCurrent5V) { - HALSIM_SetRoboRioUserCurrent5V(userCurrent5V); +void RoboRioSim::SetUserCurrent5V(units::ampere_t userCurrent5V) { + HALSIM_SetRoboRioUserCurrent5V(userCurrent5V.to()); } std::unique_ptr RoboRioSim::RegisterUserActive5VCallback( @@ -167,12 +171,12 @@ std::unique_ptr RoboRioSim::RegisterUserVoltage3V3Callback( return store; } -double RoboRioSim::GetUserVoltage3V3() { - return HALSIM_GetRoboRioUserVoltage3V3(); +units::volt_t RoboRioSim::GetUserVoltage3V3() { + return units::volt_t(HALSIM_GetRoboRioUserVoltage3V3()); } -void RoboRioSim::SetUserVoltage3V3(double userVoltage3V3) { - HALSIM_SetRoboRioUserVoltage3V3(userVoltage3V3); +void RoboRioSim::SetUserVoltage3V3(units::volt_t userVoltage3V3) { + HALSIM_SetRoboRioUserVoltage3V3(userVoltage3V3.to()); } std::unique_ptr RoboRioSim::RegisterUserCurrent3V3Callback( @@ -184,12 +188,12 @@ std::unique_ptr RoboRioSim::RegisterUserCurrent3V3Callback( return store; } -double RoboRioSim::GetUserCurrent3V3() { - return HALSIM_GetRoboRioUserCurrent3V3(); +units::ampere_t RoboRioSim::GetUserCurrent3V3() { + return units::ampere_t(HALSIM_GetRoboRioUserCurrent3V3()); } -void RoboRioSim::SetUserCurrent3V3(double userCurrent3V3) { - HALSIM_SetRoboRioUserCurrent3V3(userCurrent3V3); +void RoboRioSim::SetUserCurrent3V3(units::ampere_t userCurrent3V3) { + HALSIM_SetRoboRioUserCurrent3V3(userCurrent3V3.to()); } std::unique_ptr RoboRioSim::RegisterUserActive3V3Callback( diff --git a/wpilibc/src/main/native/include/frc/simulation/RoboRioSim.h b/wpilibc/src/main/native/include/frc/simulation/RoboRioSim.h index 5da668a941..32eb4625e6 100644 --- a/wpilibc/src/main/native/include/frc/simulation/RoboRioSim.h +++ b/wpilibc/src/main/native/include/frc/simulation/RoboRioSim.h @@ -9,6 +9,9 @@ #include +#include +#include + #include "frc/simulation/CallbackStore.h" namespace frc { @@ -29,30 +32,30 @@ class RoboRioSim { static std::unique_ptr RegisterVInVoltageCallback( NotifyCallback callback, bool initialNotify); - static double GetVInVoltage(); + static units::volt_t GetVInVoltage(); - static void SetVInVoltage(double vInVoltage); + static void SetVInVoltage(units::volt_t vInVoltage); static std::unique_ptr RegisterVInCurrentCallback( NotifyCallback callback, bool initialNotify); - static double GetVInCurrent(); + static units::ampere_t GetVInCurrent(); - static void SetVInCurrent(double vInCurrent); + static void SetVInCurrent(units::ampere_t vInCurrent); static std::unique_ptr RegisterUserVoltage6VCallback( NotifyCallback callback, bool initialNotify); - static double GetUserVoltage6V(); + static units::volt_t GetUserVoltage6V(); - static void SetUserVoltage6V(double userVoltage6V); + static void SetUserVoltage6V(units::volt_t userVoltage6V); static std::unique_ptr RegisterUserCurrent6VCallback( NotifyCallback callback, bool initialNotify); - static double GetUserCurrent6V(); + static units::ampere_t GetUserCurrent6V(); - static void SetUserCurrent6V(double userCurrent6V); + static void SetUserCurrent6V(units::ampere_t userCurrent6V); static std::unique_ptr RegisterUserActive6VCallback( NotifyCallback callback, bool initialNotify); @@ -64,16 +67,16 @@ class RoboRioSim { static std::unique_ptr RegisterUserVoltage5VCallback( NotifyCallback callback, bool initialNotify); - static double GetUserVoltage5V(); + static units::volt_t GetUserVoltage5V(); - static void SetUserVoltage5V(double userVoltage5V); + static void SetUserVoltage5V(units::volt_t userVoltage5V); static std::unique_ptr RegisterUserCurrent5VCallback( NotifyCallback callback, bool initialNotify); - static double GetUserCurrent5V(); + static units::ampere_t GetUserCurrent5V(); - static void SetUserCurrent5V(double userCurrent5V); + static void SetUserCurrent5V(units::ampere_t userCurrent5V); static std::unique_ptr RegisterUserActive5VCallback( NotifyCallback callback, bool initialNotify); @@ -85,16 +88,16 @@ class RoboRioSim { static std::unique_ptr RegisterUserVoltage3V3Callback( NotifyCallback callback, bool initialNotify); - static double GetUserVoltage3V3(); + static units::volt_t GetUserVoltage3V3(); - static void SetUserVoltage3V3(double userVoltage3V3); + static void SetUserVoltage3V3(units::volt_t userVoltage3V3); static std::unique_ptr RegisterUserCurrent3V3Callback( NotifyCallback callback, bool initialNotify); - static double GetUserCurrent3V3(); + static units::ampere_t GetUserCurrent3V3(); - static void SetUserCurrent3V3(double userCurrent3V3); + static void SetUserCurrent3V3(units::ampere_t userCurrent3V3); static std::unique_ptr RegisterUserActive3V3Callback( NotifyCallback callback, bool initialNotify); diff --git a/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp b/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp index 6aa30ca108..5766751580 100644 --- a/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp +++ b/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp @@ -47,7 +47,7 @@ TEST(StateSpaceSimTest, TestFlywheelSim) { // Then, SimulationPeriodic runs frc::sim::RoboRioSim::SetVInVoltage( - frc::sim::BatterySim::Calculate({sim.GetCurrentDraw()}).to()); + frc::sim::BatterySim::Calculate({sim.GetCurrentDraw()})); sim.SetInput(frc::MakeMatrix<1, 1>( motor.Get() * frc::RobotController::GetInputVoltage())); sim.Update(20_ms); diff --git a/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp index 116ee1bca9..18df257406 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp @@ -82,8 +82,7 @@ class Robot : public frc::TimedRobot { m_encoderSim.SetDistance(m_armSim.GetAngle().to()); // SimBattery estimates loaded battery voltages frc::sim::RoboRioSim::SetVInVoltage( - frc::sim::BatterySim::Calculate({m_armSim.GetCurrentDraw()}) - .to()); + frc::sim::BatterySim::Calculate({m_armSim.GetCurrentDraw()})); } void TeleopPeriodic() { diff --git a/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp index b342639b0b..1f6744938c 100644 --- a/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp @@ -81,8 +81,7 @@ class Robot : public frc::TimedRobot { m_encoderSim.SetDistance(m_elevatorSim.GetPosition().to()); // SimBattery estimates loaded battery voltages frc::sim::RoboRioSim::SetVInVoltage( - frc::sim::BatterySim::Calculate({m_elevatorSim.GetCurrentDraw()}) - .to()); + frc::sim::BatterySim::Calculate({m_elevatorSim.GetCurrentDraw()})); } void TeleopPeriodic() {