52  Config(std::optional<ramp_rate_t> rampRate,
 
   53         std::optional<units::volt_t> stepVoltage,
 
   54         std::optional<units::second_t> timeout,
 
 
 
   73  std::function<void(units::volt_t)> 
m_drive;
 
  110        m_log{log ? 
std::move(log) : [](
frc::sysid::SysIdRoutineLog* log) {}},
 
  111        m_subsystem{subsystem},
 
 
  134      : m_drive{
std::move(drive)},
 
  135        m_log{log ? 
std::move(log) : [](
frc::sysid::SysIdRoutineLog* log) {}},
 
  136        m_subsystem{subsystem},
 
  137        m_name{m_subsystem->
GetName()} {}
 
 
 
  180      : SysIdRoutineLog(mechanism.m_name),
 
  182        m_mechanism(mechanism),
 
  183        m_recordState(config.m_recordState ? config.m_recordState
 
  184                                           : [this](
frc::sysid::State state) {
 
  185                                               this->RecordState(state);
 
 
  194  units::volt_t m_outputVolts{0};
 
 
 
A wrapper around std::unique_ptr<Command> so commands have move-only semantics.
Definition CommandPtr.h:28
 
A robot subsystem.
Definition Subsystem.h:43
 
virtual std::string GetName() const
Gets the name of this Subsystem.
 
Hardware-independent configuration for a SysId test routine.
Definition SysIdRoutine.h:24
 
std::function< void(frc::sysid::State)> m_recordState
Optional handle for recording test state in a third-party logging solution.
Definition SysIdRoutine.h:37
 
ramp_rate_t m_rampRate
The voltage ramp rate used for quasistatic test routines.
Definition SysIdRoutine.h:27
 
units::second_t m_timeout
Safety timeout for the test routine commands.
Definition SysIdRoutine.h:33
 
units::volt_t m_stepVoltage
The step voltage output used for dynamic test routines.
Definition SysIdRoutine.h:30
 
Config(std::optional< ramp_rate_t > rampRate, std::optional< units::volt_t > stepVoltage, std::optional< units::second_t > timeout, std::function< void(frc::sysid::State)> recordState)
Create a new configuration for a SysId test routine.
Definition SysIdRoutine.h:52
 
Definition SysIdRoutine.h:69
 
std::function< void(frc::sysid::SysIdRoutineLog *)> m_log
Returns measured data (voltages, positions, velocities) of the mechanism motors during test routines.
Definition SysIdRoutine.h:77
 
std::string m_name
The name of the mechanism being tested.
Definition SysIdRoutine.h:85
 
Mechanism(std::function< void(units::volt_t)> drive, std::function< void(frc::sysid::SysIdRoutineLog *)> log, frc2::Subsystem *subsystem)
Create a new mechanism specification for a SysId routine.
Definition SysIdRoutine.h:131
 
std::function< void(units::volt_t)> m_drive
Sends the SysId-specified drive signal to the mechanism motors during test routines.
Definition SysIdRoutine.h:73
 
frc2::Subsystem * m_subsystem
The subsystem containing the motor(s) that is (or are) being characterized.
Definition SysIdRoutine.h:81
 
Mechanism(std::function< void(units::volt_t)> drive, std::function< void(frc::sysid::SysIdRoutineLog *)> log, frc2::Subsystem *subsystem, std::string_view name)
Create a new mechanism specification for a SysId routine.
Definition SysIdRoutine.h:106
 
A SysId characterization routine for a single mechanism.
Definition SysIdRoutine.h:171
 
SysIdRoutine(Config config, Mechanism mechanism)
Create a new SysId characterization routine.
Definition SysIdRoutine.h:179
 
frc2::CommandPtr Quasistatic(Direction direction)
 
frc2::CommandPtr Dynamic(Direction direction)
 
A timer class.
Definition Timer.h:36
 
Utility for logging data from a SysId test routine.
Definition SysIdRoutineLog.h:43
 
constexpr underlying_type value() const noexcept
unit value
Definition base.h:2111
 
typename units::detail::compound_impl< U, Us... >::type compound_unit
Represents a unit type made up from other units.
Definition base.h:1438
 
Definition SysIdRoutine.h:18
 
Direction
Motor direction for a SysId test.
Definition SysIdRoutine.h:143
 
@ kReverse
Reverse.
Definition SysIdRoutine.h:147
 
@ kForward
Forward.
Definition SysIdRoutine.h:145
 
State
Possible state of a SysId routine.
Definition SysIdRoutineLog.h:25
 
Implement std::hash so that hash_code can be used in STL containers.
Definition PointerIntPair.h:280