Class FunctionalCommand

  • All Implemented Interfaces:
    Sendable, Command

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

        public boolean isFinished()
        Description copied from interface: Command
        Whether 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.