19using ramp_rate_t = wpi::units::unit_t<wpi::units::compound_unit<
20 wpi::units::volt, wpi::units::inverse<wpi::units::second>>>;
51 Config(std::optional<ramp_rate_t> rampRate,
52 std::optional<wpi::units::volt_t> stepVoltage,
53 std::optional<wpi::units::second_t> timeout,
72 std::function<void(wpi::units::volt_t)>
m_drive;
105 Mechanism(std::function<
void(wpi::units::volt_t)> drive,
110 m_subsystem{subsystem},
130 Mechanism(std::function<
void(wpi::units::volt_t)> drive,
135 m_subsystem{subsystem},
136 m_name{m_subsystem->
GetName()} {}
181 m_mechanism(mechanism),
182 m_recordState(config.m_recordState ? config.m_recordState
193 wpi::units::volt_t m_outputVolts{0};
@ name
Definition base.h:690
A timer class.
Definition Timer.hpp:36
A wrapper around std::unique_ptr<Command> so commands have move-only semantics.
Definition CommandPtr.hpp:28
A robot subsystem.
Definition Subsystem.hpp:42
virtual std::string GetName() const
Gets the name of this Subsystem.
Hardware-independent configuration for a SysId test routine.
Definition SysIdRoutine.hpp:23
wpi::units::second_t m_timeout
Safety timeout for the test routine commands.
Definition SysIdRoutine.hpp:32
Config(std::optional< ramp_rate_t > rampRate, std::optional< wpi::units::volt_t > stepVoltage, std::optional< wpi::units::second_t > timeout, std::function< void(wpi::sysid::State)> recordState)
Create a new configuration for a SysId test routine.
Definition SysIdRoutine.hpp:51
wpi::units::volt_t m_stepVoltage
The step voltage output used for dynamic test routines.
Definition SysIdRoutine.hpp:29
ramp_rate_t m_rampRate
The voltage ramp rate used for quasistatic test routines.
Definition SysIdRoutine.hpp:26
std::function< void(wpi::sysid::State)> m_recordState
Optional handle for recording test state in a third-party logging solution.
Definition SysIdRoutine.hpp:36
Definition SysIdRoutine.hpp:68
Mechanism(std::function< void(wpi::units::volt_t)> drive, std::function< void(wpi::sysid::SysIdRoutineLog *)> log, wpi::cmd::Subsystem *subsystem, std::string_view name)
Create a new mechanism specification for a SysId routine.
Definition SysIdRoutine.hpp:105
std::function< void(wpi::sysid::SysIdRoutineLog *)> m_log
Returns measured data (voltages, positions, velocities) of the mechanism motors during test routines.
Definition SysIdRoutine.hpp:76
wpi::cmd::Subsystem * m_subsystem
The subsystem containing the motor(s) that is (or are) being characterized.
Definition SysIdRoutine.hpp:80
Mechanism(std::function< void(wpi::units::volt_t)> drive, std::function< void(wpi::sysid::SysIdRoutineLog *)> log, wpi::cmd::Subsystem *subsystem)
Create a new mechanism specification for a SysId routine.
Definition SysIdRoutine.hpp:130
std::string m_name
The name of the mechanism being tested.
Definition SysIdRoutine.hpp:84
std::function< void(wpi::units::volt_t)> m_drive
Sends the SysId-specified drive signal to the mechanism motors during test routines.
Definition SysIdRoutine.hpp:72
wpi::cmd::CommandPtr Quasistatic(Direction direction)
SysIdRoutine(Config config, Mechanism mechanism)
Create a new SysId characterization routine.
Definition SysIdRoutine.hpp:178
wpi::cmd::CommandPtr Dynamic(Direction direction)
Utility for logging data from a SysId test routine.
Definition SysIdRoutineLog.hpp:43
SysIdRoutineLog(std::string_view logName)
Create a new logging utility for a SysId test routine.
void RecordState(State state)
Records the current state of the SysId test routine.
Definition StringMap.hpp:773
Definition SysIdRoutine.hpp:17
Direction
Motor direction for a SysId test.
Definition SysIdRoutine.hpp:142
@ kForward
Forward.
Definition SysIdRoutine.hpp:144
@ kReverse
Reverse.
Definition SysIdRoutine.hpp:146
wpi::units::unit_t< wpi::units::compound_unit< wpi::units::volt, wpi::units::inverse< wpi::units::second > > > ramp_rate_t
Definition SysIdRoutine.hpp:19
Definition DataLogReader.hpp:17
State
Possible state of a SysId routine.
Definition SysIdRoutineLog.hpp:25
Definition CvSource.hpp:15