The Scheduler is a singleton which holds the top-level running commands. It is in charge of both calling the command’s run() method and to make sure that there are no two commands with conflicting requirements running.
It is fine if teams wish to take control of the Scheduler themselves, all that needs to be done is to call Scheduler.getInstance().run() often to have Commands function correctly. However, this is already done for you if you use the CommandBased Robot template.
Instantiates a Scheduler.
Adds the command to the Scheduler. This will not add the
Commandimmediately, but will instead wait for the proper time in the
run()loop before doing so. The command returns immediately and does nothing if given null.
Parameters: command – the command to add
Adds a button to the Scheduler. The Scheduler will poll the button during its
Parameters: button – the button to add
Disable the command scheduler.
Enable the command scheduler.
Returns the Scheduler, creating it if one does not exist.
Returns: the Scheduler
Parameters: system – the system
Removes all commands
Runs a single iteration of the loop. This method should be called often in order to have a functioning Command system. The loop has five stages:
- Poll the Buttons
- Execute/Remove the Commands
- Send values to SmartDashboard
- Add Commands
- Add Defaults