14 #include "ErrorBase.h"
15 #include "SmartDashboard/NamedSendable.h"
16 #include "tables/ITableListener.h"
58 explicit Command(
const std::string& name);
59 explicit Command(
double timeout);
60 Command(
const std::string& name,
double timeout);
72 typedef std::set<Subsystem*> SubsystemSet;
109 virtual void _Initialize();
110 virtual void _Interrupted();
111 virtual void _Execute();
125 double m_startTime = -1;
132 bool m_initialized =
false;
135 SubsystemSet m_requirements;
138 bool m_running =
false;
141 bool m_interruptible =
true;
144 bool m_canceled =
false;
147 bool m_locked =
false;
150 bool m_runWhenDisabled =
false;
155 int m_commandID = m_commandCounter++;
156 static int m_commandCounter;
159 std::string
GetName()
const override;
160 void InitTable(std::shared_ptr<ITable> subtable)
override;
161 std::shared_ptr<ITable>
GetTable()
const override;
164 std::shared_ptr<nt::Value> value,
bool isNew)
override;
167 std::shared_ptr<ITable> m_table;
void InitTable(std::shared_ptr< ITable > subtable) override
Initializes a table for this sendable object.
Definition: Command.cpp:431
bool IsCanceled() const
Returns whether or not this has been canceled.
Definition: Command.cpp:369
Command()
Creates a new command.
Definition: Command.cpp:30
A table whose values can be read and written to.
Definition: ITable.h:22
double TimeSinceInitialized() const
Returns the time since this command was initialized (in seconds).
Definition: Command.cpp:102
int GetID() const
Get the ID (sequence number) for this command.
Definition: Command.cpp:80
std::shared_ptr< ITable > GetTable() const override
Definition: Command.cpp:442
bool WillRunWhenDisabled() const
Returns whether or not this Command will run when the robot is disabled, or if it will cancel itself...
Definition: Command.cpp:425
std::string GetName() const override
Definition: Command.cpp:427
Definition: Subsystem.h:20
void Start()
Starts up the command.
Definition: Command.cpp:159
virtual bool IsFinished()=0
Returns whether this command is finished.
bool DoesRequire(Subsystem *subsystem) const
Checks if the command requires the given Subsystem.
Definition: Command.cpp:393
bool Run()
The run method is used internally to actually run the commands.
Definition: Command.cpp:174
void SetTimeout(double timeout)
Sets the timeout of this command.
Definition: Command.cpp:88
CommandGroup * GetGroup() const
Returns the CommandGroup that this command is a part of.
Definition: Command.cpp:405
void SetRunWhenDisabled(bool run)
Sets whether or not this Command should run when the robot is disabled.
Definition: Command.cpp:416
bool IsRunning() const
Returns whether or not the command is running.
Definition: Command.cpp:332
bool IsInterruptible() const
Returns whether or not this command can be interrupted.
Definition: Command.cpp:376
A listener that listens to changes in values in a ITable.
Definition: ITableListener.h:18
A CommandGroup is a list of commands which are executed in sequence.
Definition: CommandGroup.h:39
void ValueChanged(ITable *source, llvm::StringRef key, std::shared_ptr< nt::Value > value, bool isNew) override
Called when a key-value pair is changed in a ITable.
Definition: Command.cpp:444
bool AssertUnlocked(const std::string &message)
If changes are locked, then this will generate a CommandIllegalUse error.
Definition: Command.cpp:275
Base class for most objects.
Definition: ErrorBase.h:72
void SetInterruptible(bool interruptible)
Sets whether or not this command can be interrupted.
Definition: Command.cpp:383
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: Command.cpp:360
virtual void Initialize()
The initialize method is called the first time this Command is run after being started.
Definition: Command.cpp:195
virtual void Execute()
The execute method is called repeatedly until this Command either finishes or is canceled.
Definition: Command.cpp:201
void SetParent(CommandGroup *parent)
Sets the parent of this command.
Definition: Command.cpp:290
The Command class is at the very core of the entire command framework.
Definition: Command.h:52
std::string GetSmartDashboardType() const override
Definition: Command.cpp:429
void Cancel()
This will cancel the current command.
Definition: Command.cpp:345
virtual void End()
Called when the command ended peacefully.
Definition: Command.cpp:208
void Requires(Subsystem *s)
This method specifies that the given Subsystem is used by this command.
Definition: Command.cpp:121
SubsystemSet GetRequirements() const
Returns the requirements (as an std::set of Subsystems pointers) of this command. ...
Definition: Command.cpp:259
virtual void Interrupted()
Called when the command ends because somebody called cancel() or another command shared the same requ...
Definition: Command.cpp:221
The interface for sendable objects that gives the sendable a default name in the Smart Dashboard...
Definition: NamedSendable.h:21
bool IsTimedOut() const
Returns whether or not the timeSinceInitialized() method returns a number which is greater than or eq...
Definition: Command.cpp:248
Definition: Scheduler.h:29