Windows support included

This commit is contained in:
Eric Ratliff
2026-01-21 08:00:25 -06:00
parent 81452a8670
commit 63827dba58
15 changed files with 1342 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
@echo off
REM Generate MecanumDrive.java hardware implementation
setlocal
set "PROJECT_DIR=%~1"
(
echo package robot.hardware;
echo.
echo import robot.subsystems.Drive;
echo.
echo // Uncomment when deploying to robot:
echo // import com.qualcomm.robotcore.hardware.DcMotor;
echo // import com.qualcomm.robotcore.hardware.HardwareMap;
echo // import com.qualcomm.robotcore.hardware.IMU;
echo // import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
echo.
echo /**
echo * Mecanum drive hardware implementation.
echo * Implements Drive.Hardware interface.
echo *
echo * DEPLOYMENT NOTE:
echo * Uncomment FTC imports and implementation when ready to deploy.
echo * Keep commented during development/testing on PC.
echo */
echo public class MecanumDrive implements Drive.Hardware {
echo.
echo // Uncomment when deploying:
echo // private final DcMotor frontLeft;
echo // private final DcMotor frontRight;
echo // private final DcMotor backLeft;
echo // private final DcMotor backRight;
echo // private final IMU imu;
echo.
echo public MecanumDrive^(/* HardwareMap hardwareMap */^) {
echo // Uncomment when deploying:
echo // frontLeft = hardwareMap.get^(DcMotor.class, "frontLeft"^);
echo // frontRight = hardwareMap.get^(DcMotor.class, "frontRight"^);
echo // backLeft = hardwareMap.get^(DcMotor.class, "backLeft"^);
echo // backRight = hardwareMap.get^(DcMotor.class, "backRight"^);
echo // imu = hardwareMap.get^(IMU.class, "imu"^);
echo //
echo // // Configure motors
echo // frontLeft.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
echo // frontRight.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
echo // backLeft.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
echo // backRight.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
echo }
echo.
echo @Override
echo public double getHeading^(^) {
echo // Stub for testing - returns 0
echo return 0.0;
echo.
echo // Uncomment when deploying:
echo // return imu.getRobotYawPitchRollAngles^(^).getYaw^(AngleUnit.RADIANS^);
echo }
echo.
echo @Override
echo public void setPowers^(double forward, double strafe, double rotate^) {
echo // Stub for testing - does nothing
echo.
echo // Uncomment when deploying:
echo // // Mecanum drive kinematics
echo // double frontLeftPower = forward + strafe + rotate;
echo // double frontRightPower = forward - strafe - rotate;
echo // double backLeftPower = forward - strafe + rotate;
echo // double backRightPower = forward + strafe - rotate;
echo //
echo // // Normalize powers
echo // double maxPower = Math.max^(1.0, Math.max^(
echo // Math.max^(Math.abs^(frontLeftPower^), Math.abs^(frontRightPower^)^),
echo // Math.max^(Math.abs^(backLeftPower^), Math.abs^(backRightPower^)^)
echo // ^)^);
echo //
echo // frontLeft.setPower^(frontLeftPower / maxPower^);
echo // frontRight.setPower^(frontRightPower / maxPower^);
echo // backLeft.setPower^(backLeftPower / maxPower^);
echo // backRight.setPower^(backRightPower / maxPower^);
echo }
echo }
) > "%PROJECT_DIR%\src\main\java\robot\hardware\MecanumDrive.java"
endlocal
exit /b 0