Package edu.wpi.first.wpilibj.command
Class Scheduler
java.lang.Object
edu.wpi.first.wpilibj.command.Scheduler
- All Implemented Interfaces:
NTSendable,Sendable,AutoCloseable
public final class Scheduler extends Object implements NTSendable, AutoCloseable
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.
- See Also:
Command
-
Method Summary
Modifier and Type Method Description voidadd(Command command)Adds the command to theScheduler.voidaddButton(Trigger.ButtonScheduler button)Adds a button to theScheduler.voidclose()voiddisable()Disable the command scheduler.voidenable()Enable the command scheduler.static SchedulergetInstance()Returns theScheduler, creating it if one does not exist.voidinitSendable(NTSendableBuilder builder)Initializes thisSendableobject.voidremoveAll()Removes all commands.voidrun()Runs a single iteration of the loop.
-
Method Details
-
getInstance
Returns theScheduler, creating it if one does not exist.- Returns:
- the
Scheduler
-
close
- Specified by:
closein interfaceAutoCloseable
-
add
Adds the command to theScheduler. This will not add theCommandimmediately, but will instead wait for the proper time in therun()loop before doing so. The command returns immediately and does nothing if given null.Adding a
Commandto theSchedulerinvolves theSchedulerremoving anyCommandwhich has shared requirements.- Parameters:
command- the command to add
-
addButton
- Parameters:
button- the button to add
-
run
Runs a single iteration of the loop. This method should be called often in order to have a functioningCommandsystem. The loop has five stages:- Poll the Buttons
- Execute/Remove the Commands
- Send values to SmartDashboard
- Add Commands
- Add Defaults
-
removeAll
Removes all commands. -
disable
Disable the command scheduler. -
enable
Enable the command scheduler. -
initSendable
Description copied from interface:NTSendableInitializes thisSendableobject.- Specified by:
initSendablein interfaceNTSendable- Parameters:
builder- sendable builder
-