Class ParallelDeadlineGroup

  • All Implemented Interfaces:
    Sendable, Command

    public class ParallelDeadlineGroup
    extends CommandGroupBase
    A CommandGroup that runs a set of commands in parallel, ending only when a specific command (the "deadline") ends, interrupting all other commands that are still running at that point.

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

    • Constructor Detail

      • ParallelDeadlineGroup

        public ParallelDeadlineGroup​(Command deadline,
                                     Command... commands)
        Creates a new ParallelDeadlineGroup. The given commands (including the deadline) will be executed simultaneously. The CommandGroup will finish when the deadline finishes, interrupting all other still-running commands. If the CommandGroup is interrupted, only the commands still running will be interrupted.
        Parameters:
        deadline - the command that determines when the group ends
        commands - the commands to be executed
    • Method Detail

      • setDeadline

        public void setDeadline​(Command deadline)
        Sets the deadline to the given command. The deadline is added to the group if it is not already contained.
        Parameters:
        deadline - the command that determines when the group ends
      • 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