From 2760e975078a8a9c82be412e01d5917e827e1285 Mon Sep 17 00:00:00 2001 From: Sodi Date: Sat, 21 Jan 2023 12:00:39 -0600 Subject: [PATCH] Adding semi-autonomous functions, variable names are *NOT* inspired by the story of Spirit and Opportunity, the names are a coincidence. --- .../TeleOp/states/TeleOPTankDriver.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/TeamCode/src/main/java/org/timecrafters/TeleOp/states/TeleOPTankDriver.java b/TeamCode/src/main/java/org/timecrafters/TeleOp/states/TeleOPTankDriver.java index 6ad84a9..d1efb8f 100644 --- a/TeamCode/src/main/java/org/timecrafters/TeleOp/states/TeleOPTankDriver.java +++ b/TeamCode/src/main/java/org/timecrafters/TeleOp/states/TeleOPTankDriver.java @@ -15,6 +15,7 @@ public class TeleOPTankDriver extends CyberarmState { private double RotationTarget, DeltaRotation; private double MinimalPower = 0.2; private int DeltaOdometerR, Endeavour, Spirit; + private boolean FreeSpirit; private GamepadChecker gamepad1Checker; public TeleOPTankDriver(PhoenixBot1 robot) { this.robot = robot; @@ -31,15 +32,39 @@ public class TeleOPTankDriver extends CyberarmState { @Override public void init() { gamepad1Checker = new GamepadChecker(engine, engine.gamepad1); + FreeSpirit = false; } @Override public void exec() { - if (drivePower > 0.1 && ) { - + if (drivePower > 0.2) { + if (System.currentTimeMillis() - lastStepTime >= 2000 && DeltaOdometerR < 4096) { + lastStepTime = System.currentTimeMillis(); + FreeSpirit = true; + } } + if (FreeSpirit) { + drivePower = -engine.gamepad1.left_stick_y; + robot.backLeftDrive.setPower(drivePower); + robot.backRightDrive.setPower(drivePower); + robot.frontLeftDrive.setPower(drivePower); + robot.frontRightDrive.setPower(drivePower); + } + + if (Math.abs(engine.gamepad1.left_stick_y) > 0.1 && !FreeSpirit) { + drivePower = engine.gamepad1.left_stick_y; + robot.backLeftDrive.setPower(drivePower); + robot.backRightDrive.setPower(drivePower); + robot.frontLeftDrive.setPower(drivePower); + robot.frontRightDrive.setPower(drivePower); + } + + if () + + + } public void CalculateDeltaRotation() { if (RotationTarget >= 0 && RobotRotation >= 0) {