13 #include <wpi/SmallPtrSet.h>
14 #include <wpi/Twine.h>
16 #include "frc/ErrorBase.h"
17 #include "frc/commands/Subsystem.h"
18 #include "frc/smartdashboard/SendableBase.h"
73 explicit Command(
double timeout);
373 virtual void _Initialize();
374 virtual void _Interrupted();
375 virtual void _Execute();
422 double m_startTime = -1;
428 bool m_initialized =
false;
434 bool m_running =
false;
437 bool m_interruptible =
true;
440 bool m_canceled =
false;
443 bool m_locked =
false;
446 bool m_runWhenDisabled =
false;
452 bool m_completed =
false;
454 int m_commandID = m_commandCounter++;
455 static int m_commandCounter;
WPILib FRC namespace.
Definition: SPIAccelerometerSim.h:18
bool WillRunWhenDisabled() const
Returns whether or not this Command will run when the robot is disabled, or if it will cancel itself...
const SubsystemSet & GetRequirements() const
Returns the requirements (as an std::set of Subsystem pointers) of this command.
bool IsTimedOut() const
Returns whether or not the TimeSinceInitialized() method returns a number which is greater than or eq...
int GetID() const
Get the ID (sequence number) for this command.
void Requires(Subsystem *s)
This method specifies that the given Subsystem is used by this command.
void Cancel()
This will cancel the current command.
void ClearRequirements()
Clears list of subsystem requirements.
Definition: Subsystem.h:23
void Start()
Starts up the command.
virtual bool IsFinished()=0
Returns whether this command is finished.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
Definition: SmallPtrSet.h:324
Command()
Creates a new command.
bool IsCanceled() const
Returns whether or not this has been canceled.
void SetParent(CommandGroup *parent)
Sets the parent of this command.
bool IsInitialized() const
Returns whether or not the command has been initialized.
virtual void End()
Called when the command ended peacefully.
virtual void Initialize()
The initialize method is called the first time this Command is run after being started.
bool IsInterruptible() const
Returns whether or not this command can be interrupted.
virtual void Execute()
The execute method is called repeatedly until this Command either finishes or is canceled.
double TimeSinceInitialized() const
Returns the time since this command was initialized (in seconds).
bool IsRunning() const
Returns whether or not the command is running.
bool DoesRequire(Subsystem *subsystem) const
Checks if the command requires the given Subsystem.
A CommandGroup is a list of commands which are executed in sequence.
Definition: CommandGroup.h:36
bool IsParented() const
Returns whether the command has a parent.
void SetInterruptible(bool interruptible)
Sets whether or not this command can be interrupted.
Base class for most objects.
Definition: ErrorBase.h:74
bool AssertUnlocked(const std::string &message)
If changes are locked, then this will generate a CommandIllegalUse error.
Definition: SendableBase.h:19
bool IsCompleted() const
Returns whether or not the command has completed running.
Definition: SendableBuilder.h:23
CommandGroup * GetGroup() const
Returns the CommandGroup that this command is a part of.
bool Run()
The run method is used internally to actually run the commands.
The Command class is at the very core of the entire command framework.
Definition: Command.h:48
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements...
Definition: SmallPtrSet.h:395
void InitSendable(SendableBuilder &builder) override
Initializes this Sendable object.
A ConditionalCommand is a Command that starts one of two commands.
Definition: ConditionalCommand.h:35
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Definition: Twine.h:79
void SetRunWhenDisabled(bool run)
Sets whether or not this Command should run when the robot is disabled.
virtual void _Cancel()
This works like Cancel(), except that it doesn't throw an exception if it is a part of a command grou...
Definition: Scheduler.h:21
void SetTimeout(double timeout)
Sets the timeout of this command.
virtual void Interrupted()
Called when the command ends because somebody called Cancel() or another command shared the same requ...