Class CommandBase

java.lang.Object
edu.wpi.first.wpilibj2.command.CommandBase
All Implemented Interfaces:
Sendable, Command
Direct Known Subclasses:
CommandGroupBase, ConditionalCommand, FunctionalCommand, InstantCommand, MecanumControllerCommand, NotifierCommand, PerpetualCommand, PIDCommand, ProfiledPIDCommand, ProxyScheduleCommand, RamseteCommand, RunCommand, ScheduleCommand, SelectCommand, StartEndCommand, SwerveControllerCommand, TrapezoidProfileCommand, WaitCommand, WaitUntilCommand

public abstract class CommandBase
extends Object
implements Sendable, Command
A Sendable base class for Commands.
  • Field Details

  • Constructor Details

  • Method Details

    • addRequirements

      public final void addRequirements​(Subsystem... requirements)
      Adds the specified requirements to the command.
      Parameters:
      requirements - the requirements to add
    • getRequirements

      public Set<Subsystem> getRequirements()
      Description copied from interface: Command
      Specifies the set of subsystems used by this command. Two commands cannot use the same subsystem at the same time. If the command is scheduled as interruptible and another command is scheduled that shares a requirement, the command will be interrupted. Else, the command will not be scheduled. If no subsystems are required, return an empty set.

      Note: it is recommended that user implementations contain the requirements as a field, and return that field here, rather than allocating a new set every time this is called.

      Specified by:
      getRequirements in interface Command
      Returns:
      the set of subsystems that are required
    • getName

      public String getName()
      Description copied from interface: Sendable
      Gets the name of this Sendable object.
      Specified by:
      getName in interface Command
      Specified by:
      getName in interface Sendable
      Returns:
      Name
    • setName

      public void setName​(String name)
      Sets the name of this Command.
      Specified by:
      setName in interface Sendable
      Parameters:
      name - name
    • withName

      public CommandBase withName​(String name)
      Decorates this Command with a name. Is an inline function for #setName(String);
      Parameters:
      name - name
      Returns:
      the decorated Command
    • getSubsystem

      public String getSubsystem()
      Gets the subsystem name of this Command.
      Specified by:
      getSubsystem in interface Sendable
      Returns:
      Subsystem name
    • setSubsystem

      public void setSubsystem​(String subsystem)
      Sets the subsystem name of this Command.
      Specified by:
      setSubsystem in interface Sendable
      Parameters:
      subsystem - subsystem name
    • initSendable

      public void initSendable​(SendableBuilder builder)
      Initializes this sendable. Useful for allowing implementations to easily extend SendableBase.
      Specified by:
      initSendable in interface Sendable
      Parameters:
      builder - the builder used to construct this sendable