Class StartEndCommand

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

public class StartEndCommand
extends CommandBase
A command that runs a given runnable when it is initialized, and another runnable when it ends. Useful for running and then stopping a motor, or extending and then retracting a solenoid. Has no end condition as-is; either subclass it or use Command.withTimeout(double) or Command.withInterrupt(java.util.function.BooleanSupplier) to give it one.
  • Field Details

  • Constructor Details

    • StartEndCommand

      public StartEndCommand​(Runnable onInit, Runnable onEnd, Subsystem... requirements)
      Creates a new StartEndCommand. Will run the given runnables when the command starts and when it ends.
      Parameters:
      onInit - the Runnable to run on command init
      onEnd - the Runnable to run on command end
      requirements - the subsystems required by this command
  • Method Details

    • initialize

      public void initialize()
      Description copied from interface: Command
      The initial subroutine of a command. Called once when the command is initially 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