Class SequentialCommandGroup

All Implemented Interfaces:
Sendable, Command

public class SequentialCommandGroup
extends CommandGroupBase
A CommandGroups that runs a list of commands in sequence.

As a rule, CommandGroups require the union of the requirements of their component commands.

  • Constructor Details

    • SequentialCommandGroup

      public SequentialCommandGroup​(Command... commands)
      Creates a new SequentialCommandGroup. The given commands will be run sequentially, with the CommandGroup finishing when the last command finishes.
      Parameters:
      commands - the commands to include in this group.
  • Method Details

    • addCommands

      public final void addCommands​(Command... commands)
      Description copied from class: CommandGroupBase
      Adds the given commands to the command group.
      Specified by:
      addCommands in class CommandGroupBase
      Parameters:
      commands - The commands to add.
    • initialize

      public void initialize()
      Description copied from interface: Command
      The initial subroutine of a command. Called once when the command is initially scheduled.
    • execute

      public void execute()
      Description copied from interface: Command
      The main body of a command. Called repeatedly while the command is scheduled.
    • end

      public void end​(boolean interrupted)
      Description copied from interface: Command
      The action to take when the command ends. Called when either the command finishes normally, or when it interrupted/canceled.

      Do not schedule commands here that share requirements with this command. Use Command.andThen(Command...) instead.

      Parameters:
      interrupted - whether the command was interrupted/canceled
    • isFinished

      public boolean isFinished()
      Description copied from interface: Command
      Whether the command has finished. Once a command finishes, the scheduler will call its end() method and un-schedule it.
      Returns:
      whether the command has finished.
    • runsWhenDisabled

      public boolean runsWhenDisabled()
      Description copied from interface: Command
      Whether the given command should run when the robot is disabled. Override to return true if the command should run when disabled.
      Returns:
      whether the command should run when the robot is disabled
    • beforeStarting

      Description copied from interface: Command
      Decorates this command with another command to run before this command starts.

      Note: This decorator works by composing this command within a CommandGroup. The command cannot be used independently after being decorated, or be re-decorated with a different decorator, unless it is manually cleared from the list of grouped commands with CommandGroupBase.clearGroupedCommand(Command). The decorated command can, however, be further decorated without issue.

      Parameters:
      before - the command to run before this one
      Returns:
      the decorated command
    • andThen

      public SequentialCommandGroup andThen​(Command... next)
      Description copied from interface: Command
      Decorates this command with a set of commands to run after it in sequence. Often more convenient/less-verbose than constructing a new SequentialCommandGroup explicitly.

      Note: This decorator works by composing this command within a CommandGroup. The command cannot be used independently after being decorated, or be re-decorated with a different decorator, unless it is manually cleared from the list of grouped commands with CommandGroupBase.clearGroupedCommand(Command). The decorated command can, however, be further decorated without issue.

      Parameters:
      next - the commands to run next
      Returns:
      the decorated command