Now you can download a copy of these docs so you can use them offline! Download now
Command.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2011. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
5 /*----------------------------------------------------------------------------*/
6 
7 #ifndef __COMMAND_H__
8 #define __COMMAND_H__
9 
10 #include "ErrorBase.h"
11 #include "SmartDashboard/NamedSendable.h"
12 #include <set>
13 #include <string>
14 
15 class CommandGroup;
16 class Subsystem;
17 
43 class Command : public ErrorBase, public NamedSendable, public ITableListener
44 {
45  friend class CommandGroup;
46  friend class Scheduler;
47 public:
48  Command();
49  Command(const char *name);
50  Command(double timeout);
51  Command(const char *name, double timeout);
52  virtual ~Command();
53  double TimeSinceInitialized();
54  void Requires(Subsystem *s);
55  bool IsCanceled();
56  void Start();
57  bool Run();
58  void Cancel();
59  bool IsRunning();
60  bool IsInterruptible();
61  void SetInterruptible(bool interruptible);
62  bool DoesRequire(Subsystem *subsystem);
63  typedef std::set<Subsystem *> SubsystemSet;
64  SubsystemSet GetRequirements();
66  void SetRunWhenDisabled(bool run);
67  bool WillRunWhenDisabled();
68  int GetID();
69 
70 
71 protected:
72  void SetTimeout(double timeout);
73  bool IsTimedOut();
74  bool AssertUnlocked(const char *message);
75  void SetParent(CommandGroup *parent);
80  virtual void Initialize() = 0;
85  virtual void Execute() = 0;
96  virtual bool IsFinished() = 0;
102  virtual void End() = 0;
115  virtual void Interrupted() = 0;
116  virtual void _Initialize();
117  virtual void _Interrupted();
118  virtual void _Execute();
119  virtual void _End();
120  virtual void _Cancel();
121 
122 private:
123  void InitCommand(const char *name, double timeout);
124  void LockChanges();
125  /*synchronized*/ void Removed();
126  void StartRunning();
127  void StartTiming();
128 
130  std::string m_name;
132  double m_startTime;
134  double m_timeout;
136  bool m_initialized;
138  SubsystemSet m_requirements;
140  bool m_running;
142  bool m_interruptible;
144  bool m_canceled;
146  bool m_locked;
148  bool m_runWhenDisabled;
150  CommandGroup *m_parent;
151  int m_commandID;
152  static int m_commandCounter;
153 
154 public:
155  virtual std::string GetName();
156  virtual void InitTable(ITable* table);
157  virtual ITable* GetTable();
158  virtual std::string GetSmartDashboardType();
159  virtual void ValueChanged(ITable* source, const std::string& key, EntryValue value, bool isNew);
160 protected:
161  ITable* m_table;
162 };
163 
164 #endif
void SetInterruptible(bool interruptible)
Definition: Command.cpp:393
virtual void _Cancel()
Definition: Command.cpp:365
bool AssertUnlocked(const char *message)
Definition: Command.cpp:278
virtual void Execute()=0
bool IsInterruptible()
Definition: Command.cpp:384
virtual void Interrupted()=0
Definition: ITable.h:26
bool IsTimedOut()
Definition: Command.cpp:251
void Requires(Subsystem *s)
Definition: Command.cpp:144
void Start()
Definition: Command.cpp:186
double TimeSinceInitialized()
Definition: Command.cpp:127
void SetParent(CommandGroup *parent)
Definition: Command.cpp:294
virtual std::string GetName()
Definition: Command.cpp:438
virtual void ValueChanged(ITable *source, const std::string &key, EntryValue value, bool isNew)
Definition: Command.cpp:465
virtual ITable * GetTable()
Definition: Command.cpp:461
bool DoesRequire(Subsystem *subsystem)
Definition: Command.cpp:403
void Cancel()
Definition: Command.cpp:353
virtual void End()=0
bool WillRunWhenDisabled()
Definition: Command.cpp:433
int GetID()
Definition: Command.cpp:105
bool Run()
Definition: Command.cpp:199
virtual void Initialize()=0
Command()
Definition: Command.cpp:50
void SetTimeout(double timeout)
Definition: Command.cpp:114
bool IsRunning()
Definition: Command.cpp:340
void SetRunWhenDisabled(bool run)
Definition: Command.cpp:424
virtual void InitTable(ITable *table)
Definition: Command.cpp:448
CommandGroup * GetGroup()
Definition: Command.cpp:413
Definition: ITable.h:13
virtual bool IsFinished()=0
bool IsCanceled()
Definition: Command.cpp:375
virtual std::string GetSmartDashboardType()
Definition: Command.cpp:443
SubsystemSet GetRequirements()
Definition: Command.cpp:260

Generated on Sat Apr 26 2014 12:26:45 for WPILibC++ by doxygen 1.8.6