9#include <wpi/commands2/CommandPtr.hpp>
10#include <wpi/commands2/button/Trigger.hpp>
11#include <wpi/math/geometry/Pose3d.hpp>
12#include <wpi/simulation/DCMotorSim.hpp>
13#include <wpi/units/angle.hpp>
14#include <wpi/units/angular_velocity.hpp>
15#include <wpi/units/length.hpp>
16#include <wpi/units/velocity.hpp>
104 wpi::cmd::Trigger
Max()
override;
112 wpi::cmd::Trigger
Min()
override;
131 wpi::cmd::CommandPtr
Run(wpi::units::degrees_per_second_t velocity);
139 wpi::cmd::CommandPtr
Run(std::function<wpi::units::degrees_per_second_t()> velocity);
149 wpi::cmd::CommandPtr
Run(wpi::units::meters_per_second_t surfaceSpeed);
159 wpi::cmd::CommandPtr
Run(std::function<wpi::units::meters_per_second_t()> surfaceSpeed);
171 wpi::units::degrees_per_second_t velocity,
172 wpi::units::degrees_per_second_t tolerance = wpi::units::degrees_per_second_t{5.0});
187 std::function<wpi::units::degrees_per_second_t()> velocity,
188 wpi::units::degrees_per_second_t tolerance = wpi::units::degrees_per_second_t{5.0});
201 wpi::cmd::CommandPtr
RunTo(wpi::units::meters_per_second_t velocity,
202 wpi::units::meters_per_second_t tolerance);
215 wpi::cmd::CommandPtr
RunTo(std::function<wpi::units::meters_per_second_t()> velocity,
216 wpi::units::meters_per_second_t tolerance);
226 wpi::cmd::Trigger
Gte(wpi::units::degrees_per_second_t velocity);
234 wpi::cmd::Trigger
Lte(wpi::units::degrees_per_second_t velocity);
243 wpi::cmd::Trigger
Between(wpi::units::degrees_per_second_t start,
244 wpi::units::degrees_per_second_t end);
254 wpi::units::degrees_per_second_t velocity,
255 wpi::units::degrees_per_second_t within = wpi::units::degrees_per_second_t{5.0})
const;
305 std::string m_name{
"FlyWheel"};
306 std::optional<wpi::sim::DCMotorSim> m_dcMotorSim;
Definition FlyWheelConfig.hpp:21
Definition FlyWheel.hpp:72
wpi::cmd::CommandPtr Run(wpi::units::meters_per_second_t surfaceSpeed)
wpi::units::degrees_per_second_t GetVelocity() const
void SimIterate() override
wpi::cmd::CommandPtr Run(wpi::units::degrees_per_second_t velocity)
void UpdateTelemetry() override
std::string GetName() const override
wpi::cmd::Trigger Gte(wpi::units::degrees_per_second_t velocity)
void SetVelocity(wpi::units::degrees_per_second_t velocity)
void SetSurfaceSpeed(wpi::units::meters_per_second_t speed)
wpi::cmd::CommandPtr RunTo(wpi::units::meters_per_second_t velocity, wpi::units::meters_per_second_t tolerance)
void SetMeasurementVelocitySetpoint(wpi::units::meters_per_second_t velocity)
wpi::cmd::CommandPtr Run(std::function< wpi::units::degrees_per_second_t()> velocity)
wpi::cmd::CommandPtr RunTo(std::function< wpi::units::degrees_per_second_t()> velocity, wpi::units::degrees_per_second_t tolerance=wpi::units::degrees_per_second_t{5.0})
const config::FlyWheelConfig & GetConfig() const
wpi::cmd::CommandPtr RunTo(std::function< wpi::units::meters_per_second_t()> velocity, wpi::units::meters_per_second_t tolerance)
FlyWheel(config::FlyWheelConfig *config, motorcontrollers::SmartMotorController *smc)
wpi::cmd::CommandPtr RunTo(wpi::units::degrees_per_second_t velocity, wpi::units::degrees_per_second_t tolerance=wpi::units::degrees_per_second_t{5.0})
wpi::math::Pose3d GetPose3d() const override
void VisualizationUpdate() override
wpi::cmd::Trigger IsNear(wpi::units::degrees_per_second_t velocity, wpi::units::degrees_per_second_t within=wpi::units::degrees_per_second_t{5.0}) const
wpi::cmd::Trigger Max() override
wpi::cmd::CommandPtr Run(std::function< wpi::units::meters_per_second_t()> surfaceSpeed)
wpi::cmd::Trigger Between(wpi::units::degrees_per_second_t start, wpi::units::degrees_per_second_t end)
wpi::cmd::Trigger Min() override
wpi::cmd::Trigger Lte(wpi::units::degrees_per_second_t velocity)
Definition SmartVelocityMechanism.hpp:21
Definition SmartMotorController.hpp:48
Definition FlyWheel.hpp:21