Code:
bool wasAPressed = false;
// then in in teleopPeriodic...
if (driver->GetRawButton(2)) {
if (!wasAPressed) {
wasAPressed = true;
shifter->Set(shifter->Get() == DoubleSolenoid::Value::kReverse ? DoubleSolenoid::Value::kForward : DoubleSolenoid::Value::kReverse);
}
} else {
wasAPressed = false;
}