WPILibC++ 2023.4.3
|
A command that allows the user to pass in functions for each of the basic command methods through the constructor. More...
#include <frc2/command/FunctionalCommand.h>
Public Member Functions | |
FunctionalCommand (std::function< void()> onInit, std::function< void()> onExecute, std::function< void(bool)> onEnd, std::function< bool()> isFinished, std::initializer_list< Subsystem * > requirements) | |
Creates a new FunctionalCommand. More... | |
FunctionalCommand (std::function< void()> onInit, std::function< void()> onExecute, std::function< void(bool)> onEnd, std::function< bool()> isFinished, std::span< Subsystem *const > requirements={}) | |
Creates a new FunctionalCommand. More... | |
FunctionalCommand (FunctionalCommand &&other)=default | |
FunctionalCommand (const FunctionalCommand &other)=default | |
void | Initialize () override |
The initial subroutine of a command. More... | |
void | Execute () override |
The main body of a command. More... | |
void | End (bool interrupted) override |
The action to take when the command ends. More... | |
bool | IsFinished () override |
Whether the command has finished. More... | |
Public Member Functions inherited from frc2::CommandHelper< CommandBase, FunctionalCommand > | |
CommandHelper ()=default | |
CommandPtr | ToPtr () &&override |
Public Member Functions inherited from frc2::CommandBase | |
void | AddRequirements (std::initializer_list< Subsystem * > requirements) |
Adds the specified Subsystem requirements to the command. More... | |
void | AddRequirements (std::span< Subsystem *const > requirements) |
Adds the specified Subsystem requirements to the command. More... | |
void | AddRequirements (wpi::SmallSet< Subsystem *, 4 > requirements) |
Adds the specified Subsystem requirements to the command. More... | |
void | AddRequirements (Subsystem *requirement) |
Adds the specified Subsystem requirement to the command. More... | |
wpi::SmallSet< Subsystem *, 4 > | GetRequirements () const override |
Gets the Subsystem requirements of the command. More... | |
void | SetName (std::string_view name) override |
Sets the name of this Command. More... | |
std::string | GetName () const override |
Gets the name of this Command. More... | |
std::string | GetSubsystem () const |
Gets the subsystem name of this Command. More... | |
void | SetSubsystem (std::string_view subsystem) |
Sets the subsystem name of this Command. More... | |
void | InitSendable (wpi::SendableBuilder &builder) override |
Initializes this Sendable object. More... | |
Public Member Functions inherited from frc2::Command | |
Command ()=default | |
virtual | ~Command () |
Command (const Command &)=default | |
Command & | operator= (const Command &rhs) |
Command (Command &&)=default | |
Command & | operator= (Command &&)=default |
virtual void | Initialize () |
The initial subroutine of a command. More... | |
virtual void | Execute () |
The main body of a command. More... | |
virtual void | End (bool interrupted) |
The action to take when the command ends. More... | |
virtual bool | IsFinished () |
Whether the command has finished. More... | |
virtual wpi::SmallSet< Subsystem *, 4 > | GetRequirements () const =0 |
Specifies the set of subsystems used by this command. More... | |
CommandPtr | WithTimeout (units::second_t duration) && |
Decorates this command with a timeout. More... | |
CommandPtr | Until (std::function< bool()> condition) && |
Decorates this command with an interrupt condition. More... | |
CommandPtr | WithInterrupt (std::function< bool()> condition) && |
Decorates this command with an interrupt condition. More... | |
CommandPtr | BeforeStarting (std::function< void()> toRun, std::initializer_list< Subsystem * > requirements) && |
Decorates this command with a runnable to run before this command starts. More... | |
CommandPtr | BeforeStarting (std::function< void()> toRun, std::span< Subsystem *const > requirements={}) && |
Decorates this command with a runnable to run before this command starts. More... | |
CommandPtr | AndThen (std::function< void()> toRun, std::initializer_list< Subsystem * > requirements) && |
Decorates this command with a runnable to run after the command finishes. More... | |
CommandPtr | AndThen (std::function< void()> toRun, std::span< Subsystem *const > requirements={}) && |
Decorates this command with a runnable to run after the command finishes. More... | |
PerpetualCommand | Perpetually () && |
CommandPtr | Repeatedly () && |
Decorates this command to run repeatedly, restarting it when it ends, until this command is interrupted. More... | |
CommandPtr | AsProxy () && |
Decorates this command to run "by proxy" by wrapping it in a ProxyCommand. More... | |
CommandPtr | Unless (std::function< bool()> condition) && |
Decorates this command to only run if this condition is not met. More... | |
CommandPtr | IgnoringDisable (bool doesRunWhenDisabled) && |
Decorates this command to run or stop when disabled. More... | |
CommandPtr | WithInterruptBehavior (Command::InterruptionBehavior interruptBehavior) && |
Decorates this command to run or stop when disabled. More... | |
CommandPtr | FinallyDo (std::function< void(bool)> end) && |
Decorates this command with a lambda to call on interrupt or end, following the command's inherent Command::End(bool) method. More... | |
CommandPtr | HandleInterrupt (std::function< void()> handler) && |
Decorates this command with a lambda to call on interrupt, following the command's inherent Command::End(bool) method. More... | |
CommandPtr | WithName (std::string_view name) && |
Decorates this Command with a name. More... | |
void | Schedule () |
Schedules this command. More... | |
void | Cancel () |
Cancels this command. More... | |
bool | IsScheduled () const |
Whether or not the command is currently scheduled. More... | |
bool | HasRequirement (Subsystem *requirement) const |
Whether the command requires a given subsystem. More... | |
bool | IsComposed () const |
Whether the command is currently grouped in a command group. More... | |
void | SetComposed (bool isComposed) |
Sets whether the command is currently composed in a command composition. More... | |
bool | IsGrouped () const |
Whether the command is currently grouped in a command group. More... | |
void | SetGrouped (bool grouped) |
Sets whether the command is currently grouped in a command group. More... | |
virtual bool | RunsWhenDisabled () const |
Whether the given command should run when the robot is disabled. More... | |
virtual InterruptionBehavior | GetInterruptionBehavior () const |
How the command behaves when another command with a shared requirement is scheduled. More... | |
virtual std::string | GetName () const |
Gets the name of this Command. More... | |
virtual void | SetName (std::string_view name) |
Sets the name of this Command. More... | |
virtual CommandPtr | ToPtr () &&=0 |
Transfers ownership of this command to a unique pointer. More... | |
Public Member Functions inherited from wpi::Sendable | |
virtual | ~Sendable ()=default |
virtual void | InitSendable (SendableBuilder &builder)=0 |
Initializes this Sendable object. More... | |
Public Member Functions inherited from wpi::SendableHelper< CommandBase > | |
SendableHelper (const SendableHelper &rhs)=default | |
SendableHelper (SendableHelper &&rhs) | |
SendableHelper & | operator= (const SendableHelper &rhs)=default |
SendableHelper & | operator= (SendableHelper &&rhs) |
Additional Inherited Members | |
Public Types inherited from frc2::Command | |
enum class | InterruptionBehavior { kCancelSelf , kCancelIncoming } |
An enum describing the command's behavior when another command with a shared requirement is scheduled. More... | |
Protected Member Functions inherited from frc2::CommandHelper< CommandBase, FunctionalCommand > | |
std::unique_ptr< Command > | TransferOwnership () &&override |
Protected Member Functions inherited from frc2::CommandBase | |
CommandBase () | |
virtual std::unique_ptr< Command > | TransferOwnership () &&=0 |
Transfers ownership of this command to a unique pointer. More... | |
Protected Member Functions inherited from wpi::SendableHelper< CommandBase > | |
SendableHelper ()=default | |
~SendableHelper () | |
Protected Attributes inherited from frc2::CommandBase | |
wpi::SmallSet< Subsystem *, 4 > | m_requirements |
Protected Attributes inherited from frc2::Command | |
bool | m_isComposed = false |
A command that allows the user to pass in functions for each of the basic command methods through the constructor.
Useful for inline definitions of complex commands - note, however, that if a command is beyond a certain complexity it is usually better practice to write a proper class for it than to inline it.
This class is provided by the NewCommands VendorDep
frc2::FunctionalCommand::FunctionalCommand | ( | std::function< void()> | onInit, |
std::function< void()> | onExecute, | ||
std::function< void(bool)> | onEnd, | ||
std::function< bool()> | isFinished, | ||
std::initializer_list< Subsystem * > | requirements | ||
) |
Creates a new FunctionalCommand.
onInit | the function to run on command initialization |
onExecute | the function to run on command execution |
onEnd | the function to run on command end |
isFinished | the function that determines whether the command has finished |
requirements | the subsystems required by this command |
frc2::FunctionalCommand::FunctionalCommand | ( | std::function< void()> | onInit, |
std::function< void()> | onExecute, | ||
std::function< void(bool)> | onEnd, | ||
std::function< bool()> | isFinished, | ||
std::span< Subsystem *const > | requirements = {} |
||
) |
Creates a new FunctionalCommand.
onInit | the function to run on command initialization |
onExecute | the function to run on command execution |
onEnd | the function to run on command end |
isFinished | the function that determines whether the command has finished |
requirements | the subsystems required by this command |
|
default |
|
default |
|
overridevirtual |
The action to take when the command ends.
Called when either the command finishes normally, or when it interrupted/canceled.
interrupted | whether the command was interrupted/canceled |
Reimplemented from frc2::Command.
|
overridevirtual |
The main body of a command.
Called repeatedly while the command is scheduled.
Reimplemented from frc2::Command.
|
overridevirtual |
The initial subroutine of a command.
Called once when the command is initially scheduled.
Reimplemented from frc2::Command.
|
overridevirtual |
Whether the command has finished.
Once a command finishes, the scheduler will call its end() method and un-schedule it.
Reimplemented from frc2::Command.