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,81 @@
@echo off
REM Generate Drive.java subsystem
setlocal
set "PROJECT_DIR=%~1"
(
echo package robot.subsystems;
echo.
echo import robot.Pose2d;
echo.
echo /**
echo * Drive subsystem - business logic only.
echo * Hardware interface defined as inner interface.
echo * Tests use inline mocks - no FTC SDK needed.
echo */
echo public class Drive {
echo private final Hardware hardware;
echo private Pose2d pose;
echo.
echo public Drive^(Hardware hardware^) {
echo this.hardware = hardware;
echo this.pose = new Pose2d^(^);
echo }
echo.
echo /**
echo * Drive using field-centric controls.
echo * @param forward Forward/backward speed ^(-1.0 to 1.0^)
echo * @param strafe Left/right speed ^(-1.0 to 1.0^)
echo * @param rotate Rotation speed ^(-1.0 to 1.0^)
echo */
echo public void drive^(double forward, double strafe, double rotate^) {
echo // Your drive logic here
echo double heading = hardware.getHeading^(^);
echo.
echo // Example: field-centric conversion
echo double cos = Math.cos^(heading^);
echo double sin = Math.sin^(heading^);
echo.
echo double rotatedForward = forward * cos - strafe * sin;
echo double rotatedStrafe = forward * sin + strafe * cos;
echo.
echo hardware.setPowers^(rotatedForward, rotatedStrafe, rotate^);
echo }
echo.
echo /**
echo * Stop all drive motors.
echo */
echo public void stop^(^) {
echo hardware.setPowers^(0, 0, 0^);
echo }
echo.
echo /**
echo * Get current estimated pose.
echo */
echo public Pose2d getPose^(^) {
echo return pose;
echo }
echo.
echo /**
echo * Hardware interface - implement this for real robot.
echo */
echo public interface Hardware {
echo /**
echo * Get robot heading in radians.
echo */
echo double getHeading^(^);
echo.
echo /**
echo * Set drive motor powers.
echo * @param forward Forward power
echo * @param strafe Strafe power
echo * @param rotate Rotation power
echo */
echo void setPowers^(double forward, double strafe, double rotate^);
echo }
echo }
) > "%PROJECT_DIR%\src\main\java\robot\subsystems\Drive.java"
endlocal
exit /b 0