Class PerpetualCommand

  • All Implemented Interfaces:
    Sendable, Command

    public class PerpetualCommand
    extends CommandBase
    A command that runs another command in perpetuity, ignoring that command's end conditions. While this class does not extend CommandGroupBase, it is still considered a CommandGroup, as it allows one to compose another command within it; the command instances that are passed to it cannot be added to any other groups, or scheduled individually.

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

    • Field Detail

      • m_command

        protected final Command m_command
    • Constructor Detail

      • PerpetualCommand

        public PerpetualCommand​(Command command)
        Creates a new PerpetualCommand. Will run another command in perpetuity, ignoring that command's end conditions, unless this command itself is interrupted.
        Parameters:
        command - the command to run perpetually
    • Method Detail

      • 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
      • 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