Class Trigger
- All Implemented Interfaces:
BooleanSupplier
- Direct Known Subclasses:
SpectrumState
It is very easy to link a button to a command. For instance, you could link the trigger button of a joystick to a "score" command.
Triggers can easily be composed for advanced functionality using the and(BooleanSupplier)
, or(BooleanSupplier)
, negate()
operators.
This class is provided by the NewCommands VendorDep
Spectrum modified in Fall 2024 to allow triggers to default start condition of false, so if something is already true when bound it will activate the trigger. We needed this for a trigger to activate only if Teleop was enabled.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTrigger
(edu.wpi.first.wpilibj.event.EventLoop loop, BooleanSupplier condition) Creates a new trigger based on the given condition.Trigger
(BooleanSupplier condition) Creates a new trigger based on the given condition. -
Method Summary
Modifier and TypeMethodDescriptionand
(BooleanSupplier trigger) Composes two triggers with logical AND.and
(BooleanSupplier... triggers) Combines multiple BooleanSupplier triggers using a logical AND operation.debounce
(double seconds) Creates a new debounced trigger from this trigger - it will become active when this trigger has been active for longer than the specified period.debounce
(double seconds, edu.wpi.first.math.filter.Debouncer.DebounceType type) Creates a new debounced trigger from this trigger - it will become active when this trigger has been active for longer than the specified period.boolean
negate()
Creates a new trigger that is active when this trigger is inactive, i.e.not()
renamed negateonChange
(edu.wpi.first.wpilibj2.command.Command command) Starts the command when the condition changes.onChangeToFalse
(edu.wpi.first.wpilibj2.command.Command command) Starts the given command whenever the condition changes from `true` to `false`, but has to have run once prioronChangeToTrue
(edu.wpi.first.wpilibj2.command.Command command) Starts the given command whenever the condition changes from `false` to `true`, but has to have run once prioronFalse
(edu.wpi.first.wpilibj2.command.Command command) Starts the given command whenever the condition changes from `true` to `false`.onFalse
(edu.wpi.first.wpilibj2.command.Command... commands) onTrue
(edu.wpi.first.wpilibj2.command.Command command) Starts the given command whenever the condition changes from `false` to `true`.onTrue
(edu.wpi.first.wpilibj2.command.Command... commands) Starts the given commands whenever the condition changes from `false` to `true`.or
(BooleanSupplier trigger) Composes two triggers with logical OR.or
(BooleanSupplier... triggers) Combines multiple BooleanSupplier triggers using a logical OR operation.runWithEndSequence
(edu.wpi.first.wpilibj2.command.Command runCommand, edu.wpi.first.wpilibj2.command.Command endCommand, double endTimeout) Run a command while true.toggleOnFalse
(edu.wpi.first.wpilibj2.command.Command command) Toggles a command when the condition changes from `true` to `false`.toggleOnTrue
(edu.wpi.first.wpilibj2.command.Command command) Toggles a command when the condition changes from `false` to `true`.whileFalse
(edu.wpi.first.wpilibj2.command.Command command) Starts the given command when the condition changes to `false` and cancels it when the condition changes to `true`.whileFalse
(edu.wpi.first.wpilibj2.command.Command... commands) whileTrue
(edu.wpi.first.wpilibj2.command.Command command) Starts the given command when the condition changes to `true` and cancels it when the condition changes to `false`.whileTrue
(edu.wpi.first.wpilibj2.command.Command... commands) Starts the given command when the condition changes to `true` and cancels it when the condition changes to `false`.
-
Field Details
-
kFalse
-
kTrue
-
-
Constructor Details
-
Trigger
Creates a new trigger based on the given condition.- Parameters:
loop
- The loop instance that polls this trigger.condition
- the condition represented by this trigger
-
Trigger
Creates a new trigger based on the given condition.Polled by the default scheduler button loop.
- Parameters:
condition
- the condition represented by this trigger
-
-
Method Details
-
onChange
Starts the command when the condition changes.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
onTrue
Starts the given command whenever the condition changes from `false` to `true`.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
onTrue
Starts the given commands whenever the condition changes from `false` to `true`.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
onFalse
Starts the given command whenever the condition changes from `true` to `false`.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
onFalse
-
onChangeToFalse
Starts the given command whenever the condition changes from `true` to `false`, but has to have run once prior- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
onChangeToTrue
Starts the given command whenever the condition changes from `false` to `true`, but has to have run once prior- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
whileTrue
Starts the given command when the condition changes to `true` and cancels it when the condition changes to `false`.Doesn't re-start the command if it ends while the condition is still `true`. If the command should restart, see
RepeatCommand
.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
whileTrue
Starts the given command when the condition changes to `true` and cancels it when the condition changes to `false`.Doesn't re-start the command if it ends while the condition is still `true`. If the command should restart, see
RepeatCommand
.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
whileFalse
Starts the given command when the condition changes to `false` and cancels it when the condition changes to `true`.Doesn't re-start the command if it ends while the condition is still `false`. If the command should restart, see
RepeatCommand
.- Parameters:
command
- the command to start- Returns:
- this trigger, so calls can be chained
-
whileFalse
-
toggleOnTrue
Toggles a command when the condition changes from `false` to `true`.- Parameters:
command
- the command to toggle- Returns:
- this trigger, so calls can be chained
-
toggleOnFalse
Toggles a command when the condition changes from `true` to `false`.- Parameters:
command
- the command to toggle- Returns:
- this trigger, so calls can be chained
-
runWithEndSequence
public Trigger runWithEndSequence(edu.wpi.first.wpilibj2.command.Command runCommand, edu.wpi.first.wpilibj2.command.Command endCommand, double endTimeout) Run a command while true. Also runs a command for a certain timeout when released.- Parameters:
trigger
-runCommand
-endCommand
-
-
getAsBoolean
public boolean getAsBoolean()- Specified by:
getAsBoolean
in interfaceBooleanSupplier
-
and
Composes two triggers with logical AND.- Parameters:
trigger
- the condition to compose with- Returns:
- A trigger which is active when both component triggers are active.
-
and
Combines multiple BooleanSupplier triggers using a logical AND operation.- Parameters:
triggers
- an array of BooleanSupplier triggers to be combined.- Returns:
- a new Trigger that represents the logical AND of all provided triggers.
-
or
Combines multiple BooleanSupplier triggers using a logical OR operation.- Parameters:
triggers
- an array of BooleanSupplier triggers to be combined.- Returns:
- a new NewTrigger instance that represents the logical OR of the provided triggers.
-
or
Composes two triggers with logical OR.- Parameters:
trigger
- the condition to compose with- Returns:
- A trigger which is active when either component trigger is active.
-
negate
Creates a new trigger that is active when this trigger is inactive, i.e. that acts as the negation of this trigger.- Returns:
- the negated trigger
-
not
renamed negate- Returns:
- the negated trigger
-
debounce
Creates a new debounced trigger from this trigger - it will become active when this trigger has been active for longer than the specified period.- Parameters:
seconds
- The debounce period.- Returns:
- The debounced trigger (rising edges debounced only)
-
debounce
Creates a new debounced trigger from this trigger - it will become active when this trigger has been active for longer than the specified period.- Parameters:
seconds
- The debounce period.type
- The debounce type.- Returns:
- The debounced trigger.
-