Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## edu.wpi.first.wpilibj.command
Class Scheduler

    java.lang.Object
      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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

"
For updated information see the Java FRC site
"