2022-01-29 01:16:58 -07:00
|
|
|
package frc4388.utility.controller;
|
|
|
|
|
|
2022-01-31 19:29:00 -07:00
|
|
|
import static frc4388.robot.Constants.OIConstants.LEFT_AXIS_DEADBAND;
|
2022-01-29 14:49:18 -07:00
|
|
|
|
|
|
|
|
import edu.wpi.first.math.geometry.Translation2d;
|
2022-01-29 01:16:58 -07:00
|
|
|
import edu.wpi.first.wpilibj.XboxController;
|
2022-03-10 16:47:32 -07:00
|
|
|
import frc4388.robot.Constants.OIConstants;
|
2022-01-29 01:16:58 -07:00
|
|
|
|
|
|
|
|
public class DeadbandedXboxController extends XboxController {
|
|
|
|
|
public DeadbandedXboxController(int port) { super(port); }
|
2022-04-02 13:53:47 -06:00
|
|
|
|
2022-01-29 14:49:18 -07:00
|
|
|
@Override public double getLeftX() { return skewToDeadzonedCircle(super.getLeftX(), super.getLeftY()).getX(); }
|
|
|
|
|
@Override public double getLeftY() { return skewToDeadzonedCircle(super.getLeftX(), super.getLeftY()).getY(); }
|
|
|
|
|
@Override public double getRightX() { return skewToDeadzonedCircle(super.getRightX(), super.getRightY()).getX(); }
|
|
|
|
|
@Override public double getRightY() { return skewToDeadzonedCircle(super.getRightX(), super.getRightY()).getY(); }
|
2022-04-02 13:53:47 -06:00
|
|
|
|
|
|
|
|
public int getDpadAngle() {
|
|
|
|
|
return getPOV(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean getDPadLeft(){
|
|
|
|
|
return (getRawAxis(6) < -0.9);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean getDPadRight(){
|
|
|
|
|
return (getRawAxis(6) > 0.9);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean getDPadTop(){
|
|
|
|
|
return (getRawAxis(6) < 0.9);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean getDPadBottom(){
|
|
|
|
|
return (getRawAxis(6) > -0.9);
|
|
|
|
|
}
|
|
|
|
|
|
2022-01-29 14:49:18 -07:00
|
|
|
public static Translation2d skewToDeadzonedCircle(double x, double y) {
|
|
|
|
|
Translation2d translation2d = new Translation2d(x, y);
|
|
|
|
|
double magnitude = translation2d.getNorm();
|
2022-03-10 16:47:32 -07:00
|
|
|
if (OIConstants.SKEW_STICKS && magnitude >= 1) return translation2d.div(magnitude);
|
2022-01-31 19:29:00 -07:00
|
|
|
if (magnitude < LEFT_AXIS_DEADBAND) return new Translation2d(0,0);
|
2022-01-29 14:49:18 -07:00
|
|
|
return translation2d;
|
|
|
|
|
}
|
2022-01-29 01:16:58 -07:00
|
|
|
}
|