diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 5d61976..7c7ef2e 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -110,8 +110,12 @@ public final class Constants { public static final Gains SHOOTER_ANGLE_GAINS = new Gains(0.05, 0.0, 0.0, 0.0, 0, 0.3); public static final double SHOOTER_TURRET_MIN = -1.0; - public static final double DEADZONE_LEFT = 0.0; - public static final double DEADZONE_RIGHT = 340.0; + // deadzones + public static final double HARD_DEADZONE_LEFT = 0.0; + public static final double HARD_DEADZONE_RIGHT = 340.0; + + public static final double DIG_DEADZONE_LEFT = 40.0; + public static final double DIG_DEADZONE_RIGHT = 60.0; public static final int SHOOTER_FALCON_BALLER_ID = 0; //unknown value, fix later// public static final int SHOOTER_FALCON_BALLER_FOLLOWER_ID = 0; //"// diff --git a/src/main/java/frc4388/robot/commands/AimToCenter.java b/src/main/java/frc4388/robot/commands/AimToCenter.java index 93c1501..54cdbce 100644 --- a/src/main/java/frc4388/robot/commands/AimToCenter.java +++ b/src/main/java/frc4388/robot/commands/AimToCenter.java @@ -50,11 +50,21 @@ public class AimToCenter extends CommandBase { } /** - * Checks if in deadzone. - * @return True if deadzone. + * Checks if in hardware deadzone (due to mechanical limitations). + * @param angle Angle to check. + * @return True if in hardware deadzone. */ - public static boolean isDeadzone(double angle) { - return ((ShooterConstants.DEADZONE_LEFT > angle) || (angle > ShooterConstants.DEADZONE_RIGHT)); + public static boolean isHardwareDeadzone(double angle) { + return ((ShooterConstants.HARD_DEADZONE_LEFT > angle) || (angle > ShooterConstants.HARD_DEADZONE_RIGHT)); + } + + /** + * Checks if in digital deadzone (due to climber). + * @param angle Angle to check. + * @return True if in digital deadzone. + */ + public static boolean isDigitalDeadzone(double angle) { + return ((ShooterConstants.DIG_DEADZONE_LEFT < angle) && (angle < ShooterConstants.DIG_DEADZONE_RIGHT)); } // Called once the command ends or is interrupted. diff --git a/src/test/java/frc4388/commands/AimToCenterTest.java b/src/test/java/frc4388/commands/AimToCenterTest.java index 8023e72..72a84f4 100644 --- a/src/test/java/frc4388/commands/AimToCenterTest.java +++ b/src/test/java/frc4388/commands/AimToCenterTest.java @@ -14,39 +14,39 @@ public class AimToCenterTest { boolean output; //20 deg - output = AimToCenter.isDeadzone(20.); + output = AimToCenter.isHardwareDeadzone(20.); Assert.assertFalse(output); //-10 deg - output = AimToCenter.isDeadzone(-10.); + output = AimToCenter.isHardwareDeadzone(-10.); Assert.assertTrue(output); //-1 deg - output = AimToCenter.isDeadzone(-1.); + output = AimToCenter.isHardwareDeadzone(-1.); Assert.assertTrue(output); //341 deg - output = AimToCenter.isDeadzone(341.); + output = AimToCenter.isHardwareDeadzone(341.); Assert.assertTrue(output); //340 deg - output = AimToCenter.isDeadzone(340.); + output = AimToCenter.isHardwareDeadzone(340.); Assert.assertFalse(output); //0 deg - output = AimToCenter.isDeadzone(0.); + output = AimToCenter.isHardwareDeadzone(0.); Assert.assertFalse(output); //200 deg - output = AimToCenter.isDeadzone(200.); + output = AimToCenter.isHardwareDeadzone(200.); Assert.assertFalse(output); //2000000 deg - output = AimToCenter.isDeadzone(2000000.); + output = AimToCenter.isHardwareDeadzone(2000000.); Assert.assertTrue(output); //NaN deg - output = AimToCenter.isDeadzone(Double.NaN); + output = AimToCenter.isHardwareDeadzone(Double.NaN); Assert.assertFalse(output); }