132 lines
3.5 KiB
Batchfile
132 lines
3.5 KiB
Batchfile
@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 |