Class ParallelRaceGroup

  • All Implemented Interfaces:
    Sendable, Command

    public class ParallelRaceGroup
    extends CommandGroupBase
    A CommandGroup that runs a set of commands in parallel, ending when any one of the commands ends and interrupting all the others.

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

    • Constructor Detail

      • ParallelRaceGroup

        public ParallelRaceGroup​(Command... commands)
        Creates a new ParallelCommandRace. The given commands will be executed simultaneously, and will "race to the finish" - the first command to finish ends the entire command, with all other commands being interrupted.
        Parameters:
        commands - the commands to include in this group.
    • Method Detail

      • 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