summaryrefslogtreecommitdiff
path: root/src/org/usfirst/frc/team4272/robot2015/Teleop.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/usfirst/frc/team4272/robot2015/Teleop.java')
-rw-r--r--src/org/usfirst/frc/team4272/robot2015/Teleop.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/org/usfirst/frc/team4272/robot2015/Teleop.java b/src/org/usfirst/frc/team4272/robot2015/Teleop.java
new file mode 100644
index 0000000..541099c
--- /dev/null
+++ b/src/org/usfirst/frc/team4272/robot2015/Teleop.java
@@ -0,0 +1,54 @@
+package org.usfirst.frc.team4272.robot2015;
+
+import org.usfirst.frc.team4272.robotlib.Toggler;
+import org.usfirst.frc.team4272.robotlib.Xbox360Controller.Axis;
+import org.usfirst.frc.team4272.robotlib.Xbox360Controller.Button;
+
+import edu.wpi.first.wpilibj.Joystick;
+import edu.wpi.first.wpilibj.Relay;
+
+public class Teleop {
+ private Toggler grabButton = new Toggler();
+ private Toggler pushButton = new Toggler();
+
+ public Teleop() {
+ }
+
+ private static double jsScale(Joystick j) {
+ double y = -j.getY();/* +:forward; -:backward */
+ double z = -j.getZ();/* +:more-sensitive; -:less-sensitive */
+ return Math.copySign(Math.pow(Math.abs(y), 2.0-z), y);
+ }
+
+ public Control run(Control control, HwOI oi) {
+ /* Drive */
+ control.lDrive = jsScale(oi.lStick);
+ control.rDrive = jsScale(oi.rStick);
+ /* Winch */
+ control.winch = oi.xbox.getAxis(Axis.LY);/* up is neg, down is pos */
+ if (Math.abs(control.winch) < 0.1) { control.winch = 0; }
+
+ /* left intake */
+ if (oi.xbox.getButton(Button.LB)) {
+ control.lIntake = Relay.Value.kReverse;
+ } else if (oi.xbox.getAxis(Axis.LT) > 0.75) {
+ control.lIntake = Relay.Value.kForward;
+ } else {
+ control.lIntake = Relay.Value.kOff;
+ }
+
+ /* right intake */
+ if (oi.xbox.getButton(Button.RB)) {
+ control.rIntake=(Relay.Value.kReverse);
+ } else if (oi.xbox.getAxis(Axis.RT) > 0.75) {
+ control.rIntake=(Relay.Value.kForward);
+ } else {
+ control.rIntake=(Relay.Value.kOff);
+ }
+
+ control.grab = grabButton.update(oi.xbox.getButton(Button.A));
+ control.push = pushButton.update(oi.xbox.getButton(Button.B));
+
+ return control;
+ }
+}