Package edu.wpi.first.wpilibj2.command
Class FunctionalCommand
- java.lang.Object
-
- edu.wpi.first.wpilibj2.command.CommandBase
-
- edu.wpi.first.wpilibj2.command.FunctionalCommand
-
public class FunctionalCommand extends CommandBase
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected BooleanSupplierm_isFinishedprotected Consumer<Boolean>m_onEndprotected Runnablem_onExecuteprotected Runnablem_onInit-
Fields inherited from class edu.wpi.first.wpilibj2.command.CommandBase
m_requirements
-
-
Constructor Summary
Constructors Constructor Description FunctionalCommand(Runnable onInit, Runnable onExecute, Consumer<Boolean> onEnd, BooleanSupplier isFinished, Subsystem... requirements)Creates a new FunctionalCommand.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidend(boolean interrupted)The action to take when the command ends.voidexecute()The main body of a command.voidinitialize()The initial subroutine of a command.booleanisFinished()Whether the command has finished.-
Methods inherited from class edu.wpi.first.wpilibj2.command.CommandBase
addRequirements, getName, getRequirements, getSubsystem, initSendable, setName, setSubsystem
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.wpi.first.wpilibj2.command.Command
alongWith, andThen, andThen, asProxy, beforeStarting, cancel, deadlineWith, hasRequirement, isScheduled, perpetually, raceWith, runsWhenDisabled, schedule, schedule, withInterrupt, withTimeout
-
-
-
-
Field Detail
-
m_onInit
protected final Runnable m_onInit
-
m_onExecute
protected final Runnable m_onExecute
-
m_isFinished
protected final BooleanSupplier m_isFinished
-
-
Constructor Detail
-
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 initializationonExecute- the function to run on command executiononEnd- the function to run on command endisFinished- the function that determines whether the command has finishedrequirements- the subsystems required by this command
-
-
Method Detail
-
initialize
public void initialize()
Description copied from interface:CommandThe initial subroutine of a command. Called once when the command is initially scheduled.
-
execute
public void execute()
Description copied from interface:CommandThe main body of a command. Called repeatedly while the command is scheduled.
-
end
public void end(boolean interrupted)
Description copied from interface:CommandThe action to take when the command ends. Called when either the command finishes normally, or when it interrupted/canceled.- Parameters:
interrupted- whether the command was interrupted/canceled
-
isFinished
public boolean isFinished()
Description copied from interface:CommandWhether 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.
-
-