"

2013 FRC Java API

"

edu.wpi.first.wpilibj.command
Class Scheduler

java.lang.Object
  extended by edu.wpi.first.wpilibj.command.Scheduler
All Implemented Interfaces:
NamedSendable, Sendable

public class Scheduler
extends Object
implements NamedSendable

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.

Author:
Joe Grinstead
See Also:
Command

Method Summary
 void add(Command command)
          Adds the command to the Scheduler.
 void addButton(Trigger.ButtonScheduler button)
          Adds a button to the Scheduler.
 void disable()
          Disable the command scheduler.
 void enable()
          Enable the command scheduler.
static Scheduler getInstance()
          Returns the Scheduler, creating it if one does not exist.
 String getName()
           
 String getSmartDashboardType()
           
 ITable getTable()
          
 String getType()
           
 void initTable(ITable subtable)
          Initializes a table for this sendable object.
 void removeAll()
          Removes all commands
 void run()
          Runs a single iteration of the loop.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static Scheduler getInstance()
Returns the Scheduler, creating it if one does not exist.

Returns:
the Scheduler

add

public void add(Command command)
Adds the command to the Scheduler. This will not add the Command immediately, 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.

Adding a Command to the Scheduler involves the Scheduler removing any Command which has shared requirements.

Parameters:
command - the command to add

addButton

public void addButton(Trigger.ButtonScheduler button)
Adds a button to the Scheduler. The Scheduler will poll the button during its run().

Parameters:
button - the button to add

run

public void run()
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:
  1. Poll the Buttons
  2. Execute/Remove the Commands
  3. Send values to SmartDashboard
  4. Add Commands
  5. Add Defaults


removeAll

public void removeAll()
Removes all commands


disable

public void disable()
Disable the command scheduler.


enable

public void enable()
Enable the command scheduler.


getName

public String getName()
Specified by:
getName in interface NamedSendable
Returns:
the name of the subtable of SmartDashboard that the Sendable object will use

getType

public String getType()

initTable

public void initTable(ITable subtable)
Initializes a table for this sendable object.

Specified by:
initTable in interface Sendable
Parameters:
subtable - The table to put the values in.

getTable

public ITable getTable()

Specified by:
getTable in interface Sendable
Returns:
the table that is currently associated with the sendable

getSmartDashboardType

public String getSmartDashboardType()
Specified by:
getSmartDashboardType in interface Sendable
Returns:
the string representation of the named data type that will be used by the smart dashboard for this sendable

"

2013 FRC Java API

"

"
For updated information see the Java FRC site
"