This guide covers the trigger/binding model in valleyLib-ftc.
CommandGamepad: FTC gamepad wrapper (recommended)CommandXboxLike: shaping + trigger helper base classGamepadEx: backward-compatible aliasTrigger: condition pipeline + event bindingsTriggerManager: polling registry used byCommandOpMode
private CommandGamepad driver;
@Override
protected void initialize() {
driver = CommandGamepad.forLogitechF310(gamepad1);
}
@Override
protected void configureBindings() {
triggers.bindAll(
driver.a().onTrue(claw.closeCommand()),
driver.b().onTrue(claw.openCommand()),
driver.rightBumper().whileTrue(intake.runIn()),
driver.leftBumper().whileTrue(intake.runOut())
);
}onTrue(command)onFalse(command)onChange(command)whileTrue(command)whileFalse(command)toggleOnTrue(command)
Build richer conditions:
trigger.and(other)trigger.or(other)trigger.negate()trigger.debounce(seconds)
Example:
Trigger shootReady = driver.rightTriggerButton(0.35)
.and(driver.leftBumper())
.debounce(0.05);
triggers.bind(shootReady.whileTrue(shooter.feedAndShoot()));Use these axis methods for drive/control input:
leftX(),leftY(),rightX(),rightY()leftTrigger(),rightTrigger()leftTriggerButton(threshold),rightTriggerButton(threshold)
These values are deadbanded and curve-shaped for smoother control.
- Reuse command instances intentionally for
toggleOnTrue(identity-based). - Ensure commands reset internal state in
initialize(). - Always declare subsystem requirements.