Class FunctionalCommand

java.lang.Object
edu.wpi.first.wpilibj2.command.Command
edu.wpi.first.wpilibj2.command.FunctionalCommand
All Implemented Interfaces:
Sendable
Direct Known Subclasses:
InstantCommand, RunCommand, StartEndCommand

public class FunctionalCommand
extends Command
A command that allows the user to pass in functions for each of the basic command methods through the constructor. Useful for inline definitions of complex commands - note, however, that if a command is beyond a certain complexity it is usually better practice to write a proper class for it than to inline it.

This class is provided by the NewCommands VendorDep

  • Constructor Details

    • FunctionalCommand

      public FunctionalCommand​(Runnable onInit, Runnable onExecute, Consumer<Boolean> onEnd, BooleanSupplier isFinished, Subsystem... requirements)
      Creates a new FunctionalCommand.
      Parameters:
      onInit - the function to run on command initialization
      onExecute - the function to run on command execution
      onEnd - the function to run on command end
      isFinished - the function that determines whether the command has finished
      requirements - the subsystems required by this command
  • Method Details

    • initialize

      public void initialize()
      Description copied from class: Command
      The initial subroutine of a command. Called once when the command is initially scheduled.
      Overrides:
      initialize in class Command
    • execute

      public void execute()
      Description copied from class: Command
      The main body of a command. Called repeatedly while the command is scheduled.
      Overrides:
      execute in class Command
    • end

      public void end​(boolean interrupted)
      Description copied from class: 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.

      Overrides:
      end in class Command
      Parameters:
      interrupted - whether the command was interrupted/canceled
    • isFinished

      public boolean isFinished()
      Description copied from class: Command
      Whether the command has finished. Once a command finishes, the scheduler will call its end() method and un-schedule it.
      Overrides:
      isFinished in class Command
      Returns:
      whether the command has finished.