001// Copyright (c) FIRST and other WPILib contributors. 002// Open Source Software; you can modify and/or share it under the terms of 003// the WPILib BSD license file in the root directory of this project. 004 005package edu.wpi.first.wpilibj2.command.button; 006 007import static edu.wpi.first.util.ErrorMessages.requireNonNullParam; 008 009import edu.wpi.first.wpilibj.GenericHID; 010 011/** 012 * A {@link Trigger} that gets its state from a POV on a {@link GenericHID}. 013 * 014 * <p>This class is provided by the NewCommands VendorDep 015 */ 016public class POVButton extends Trigger { 017 /** 018 * Creates a POV button for triggering commands. 019 * 020 * @param joystick The GenericHID object that has the POV 021 * @param angle The desired angle in degrees (e.g. 90, 270) 022 * @param povNumber The POV number (see {@link GenericHID#getPOV(int)}) 023 */ 024 public POVButton(GenericHID joystick, int angle, int povNumber) { 025 super(() -> joystick.getPOV(povNumber) == angle); 026 requireNonNullParam(joystick, "joystick", "POVButton"); 027 } 028 029 /** 030 * Creates a POV button for triggering commands. By default, acts on POV 0 031 * 032 * @param joystick The GenericHID object that has the POV 033 * @param angle The desired angle (e.g. 90, 270) 034 */ 035 public POVButton(GenericHID joystick, int angle) { 036 this(joystick, angle, 0); 037 } 038}