@echo off REM Generate project README.md setlocal set "PROJECT_DIR=%~1" set "PROJECT_NAME=%~2" ( echo # %PROJECT_NAME% echo. echo FTC robot project generated by FTC Project Generator. echo. echo ## Quick Start echo. echo ```batch echo REM Run tests echo gradlew test echo. echo REM Watch tests ^(auto-rerun^) echo gradlew test --continuous echo. echo REM Build and check echo build.bat echo. echo REM Deploy to robot echo deploy-to-robot.bat echo ``` echo. echo ## Project Structure echo. echo ``` echo %PROJECT_NAME%\ echo +-- src\main\java\robot\ echo ^| +-- subsystems\ Your robot logic ^(tested on PC^) echo ^| +-- hardware\ FTC hardware implementations echo ^| +-- opmodes\ FTC OpModes for Control Hub echo +-- src\test\java\robot\ Unit tests ^(run without robot^) echo ``` echo. echo ## Development Workflow echo. echo 1. **Write code** in `src/main/java/robot/` echo 2. **Write tests** in `src/test/java/robot/` echo 3. **Run tests** with `gradlew test --continuous` echo 4. **Tests pass** → You're good! echo. echo ## Deployment to Robot echo. echo When ready to test on actual hardware: echo. echo 1. **Uncomment FTC imports** in: echo - `src\main\java\robot\hardware\MecanumDrive.java` echo - `src\main\java\robot\opmodes\TeleOp.java` echo. echo 2. **Run deployment script:** echo ```batch echo deploy-to-robot.bat echo ``` echo. echo The script will: echo - Deploy your code to SDK TeamCode echo - Build APK echo - Install to Control Hub ^(via USB or WiFi^) echo. echo ### Connection Methods echo. echo - **USB**: Just plug in and run ^(recommended^) echo - **WiFi**: Connect to 'FIRST-xxxx-RC' network ^(IP: 192.168.43.1^) echo - **Custom**: `deploy-to-robot.bat -i 192.168.1.x` echo. echo ## Adding New Subsystems echo. echo Follow the pattern: echo. echo 1. **Create subsystem** with inner Hardware interface: echo ```java echo public class MySubsystem { echo public interface Hardware { echo void doThing^(^); echo } echo } echo ``` echo. echo 2. **Create test** with inline mock: echo ```java echo class MySubsystemTest { echo static class MockHardware implements MySubsystem.Hardware { echo boolean didThing = false; echo public void doThing^(^) { didThing = true; } echo } echo } echo ``` echo. echo 3. **Create hardware impl** for robot ^(keep FTC imports commented during dev^) echo. echo ## Tips echo. echo - Keep FTC imports commented during development echo - Write tests for everything - they run instantly on PC echo - Use `gradlew test --continuous` for fast iteration echo - Multiple projects can share the same FTC SDK echo. echo ## Commands echo. echo ```batch echo REM Development ^(on PC^) echo gradlew test Run all tests echo gradlew test --continuous Watch mode echo. echo REM Before deployment echo build.bat Check for compile errors echo build.bat --clean Clean build echo. echo REM Deploy to robot echo deploy-to-robot.bat Full deployment echo deploy-to-robot.bat --help Show options echo. echo REM Other echo gradlew clean Clean build artifacts echo gradlew tasks List available tasks echo ``` echo. echo ## Generated by FTC Project Generator echo. echo This project structure separates your robot code from the FTC SDK, echo making it easy to test on PC and deploy when ready. echo. echo For more information, see the FTC Project Generator documentation. ) > "%PROJECT_DIR%\README.md" endlocal exit /b 0