Class PerpetualCommand

java.lang.Object
edu.wpi.first.wpilibj2.command.CommandBase
edu.wpi.first.wpilibj2.command.PerpetualCommand
All Implemented Interfaces:
Sendable, Command

@Deprecated(forRemoval=true,
            since="2023")
public class PerpetualCommand
extends CommandBase
Deprecated, for removal: This API element is subject to removal in a future version.
PerpetualCommand violates the assumption that execute() doesn't get called after isFinished() returns true -- an assumption that should be valid. This was unsafe/undefined behavior from the start, and RepeatCommand provides an easy way to achieve similar end results with slightly different (and safe) semantics.
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 composition, 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.

This class is provided by the NewCommands VendorDep

  • Field Details

    • m_command

      protected final Command m_command
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • PerpetualCommand

      public PerpetualCommand​(Command command)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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 Details

    • initialize

      public void initialize()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: Command
      The initial subroutine of a command. Called once when the command is initially scheduled.
    • execute

      public void execute()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: Command
      The main body of a command. Called repeatedly while the command is scheduled.
    • end

      public void end​(boolean interrupted)
      Deprecated, for removal: This API element is subject to removal in a future version.
      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()
      Deprecated, for removal: This API element is subject to removal in a future version.
      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