Package edu.wpi.first.wpilibj2.command
Class SelectCommand
- java.lang.Object
-
- edu.wpi.first.wpilibj2.command.CommandBase
-
- edu.wpi.first.wpilibj2.command.SelectCommand
-
public class SelectCommand extends CommandBase
Runs one of a selection of commands, either using a selector and a key to command mapping, or a supplier that returns the command directly at runtime. Does not actually schedule the selected command - rather, the command is run through this command; this ensures that the command will behave as expected if used as part of a CommandGroup. Requires the requirements of all included commands, again to ensure proper functioning when used in a CommandGroup. If this is undesired, consider usingScheduleCommand
.As this command contains multiple component commands within it, it is technically a command group; 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.
-
-
Field Summary
-
Fields inherited from class edu.wpi.first.wpilibj2.command.CommandBase
m_requirements
-
-
Constructor Summary
Constructors Constructor Description SelectCommand(Supplier<Command> toRun)
Creates a new selectcommand.SelectCommand(Map<Object,Command> commands, Supplier<Object> selector)
Creates a new selectcommand.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
end(boolean interrupted)
The action to take when the command ends.void
execute()
The main body of a command.void
initialize()
The initial subroutine of a command.boolean
isFinished()
Whether the command has finished.boolean
runsWhenDisabled()
Whether the given command should run when the robot is disabled.-
Methods inherited from class edu.wpi.first.wpilibj2.command.CommandBase
addRequirements, getName, getRequirements, getSubsystem, initSendable, setName, setSubsystem, withName
-
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, beforeStarting, cancel, deadlineWith, hasRequirement, isScheduled, perpetually, raceWith, schedule, schedule, withInterrupt, withTimeout
-
-
-
-
Constructor Detail
-
SelectCommand
public SelectCommand(Map<Object,Command> commands, Supplier<Object> selector)
Creates a new selectcommand.- Parameters:
commands
- the map of commands to choose fromselector
- the selector to determine which command to run
-
SelectCommand
public SelectCommand(Supplier<Command> toRun)
Creates a new selectcommand.- Parameters:
toRun
- a supplier providing the command to run
-
-
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.
-
runsWhenDisabled
public boolean runsWhenDisabled()
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
-
-