@echo off REM Generate deploy-to-robot.bat script setlocal set "PROJECT_DIR=%~1" ( echo @echo off echo REM Deploy FTC project to Control Hub echo. echo setlocal enabledelayedexpansion echo. echo set "CONTROL_HUB_IP=192.168.43.1" echo set "CONTROL_HUB_PORT=5555" echo set "FORCE_USB=0" echo set "FORCE_WIFI=0" echo set "SHOW_HELP=0" echo. echo :parse_args echo if "%%~1"=="" goto args_done echo if /i "%%~1"=="-h" set "SHOW_HELP=1" ^& goto next_arg echo if /i "%%~1"=="--help" set "SHOW_HELP=1" ^& goto next_arg echo if /i "%%~1"=="--usb" set "FORCE_USB=1" ^& goto next_arg echo if /i "%%~1"=="--wifi" set "FORCE_WIFI=1" ^& goto next_arg echo if /i "%%~1"=="-i" set "CONTROL_HUB_IP=%%~2" ^& shift ^& goto next_arg echo if /i "%%~1"=="--ip" set "CONTROL_HUB_IP=%%~2" ^& shift ^& goto next_arg echo :next_arg echo shift echo goto parse_args echo. echo :args_done echo. echo if %%SHOW_HELP%%==1 ^( echo echo ================================================================ echo echo FTC Project Deployment - Deploy to Robot echo echo ================================================================ echo echo. echo echo Deploys your robot code to the Control Hub and installs APK. echo echo. echo echo USAGE: echo echo deploy-to-robot.bat [options] echo echo. echo echo OPTIONS: echo echo --usb Force USB connection echo echo --wifi Force WiFi Direct connection echo echo -i, --ip ^ Custom Control Hub IP echo echo -h, --help Show this help echo echo. echo echo EXAMPLES: echo echo deploy-to-robot.bat Auto-detect connection echo echo deploy-to-robot.bat --usb Use USB only echo echo deploy-to-robot.bat --wifi Use WiFi Direct echo echo deploy-to-robot.bat -i 192.168.1.100 Custom IP echo echo. echo exit /b 0 echo ^) echo. echo echo ================================================================ echo echo FTC Project Deployment - Deploy to Robot echo echo ================================================================ echo echo. echo. echo echo Step 1: Deploying code to SDK TeamCode... echo call gradlew deployToSDK echo if errorlevel 1 ^( echo echo Error: Failed to deploy code echo exit /b 1 echo ^) echo echo + Code deployed echo echo. echo. echo echo Step 2: Building APK... echo cd /d "%%USERPROFILE%%\ftc-sdk" echo if not exist "%%CD%%\build.gradle" ^( echo echo Error: FTC SDK not found at %%USERPROFILE%%\ftc-sdk echo exit /b 1 echo ^) echo. echo call gradlew build echo if errorlevel 1 ^( echo echo Error: APK build failed echo exit /b 1 echo ^) echo. echo set "APK_PATH=%%CD%%\FtcRobotController\build\outputs\apk\debug\FtcRobotController-debug.apk" echo if not exist "!APK_PATH!" ^( echo echo Error: APK not found at expected location echo echo Expected: !APK_PATH! echo exit /b 1 echo ^) echo echo + APK built successfully echo echo. echo. echo echo Step 3: Installing to Control Hub... echo echo. echo. echo where adb ^>nul 2^>^&1 echo if errorlevel 1 ^( echo echo Error: 'adb' not found in PATH echo echo. echo echo Install Android SDK Platform Tools and add to PATH: echo echo https://developer.android.com/studio/releases/platform-tools echo echo. echo exit /b 1 echo ^) echo. echo set "INSTALLED=0" echo. echo REM Try USB first echo if %%FORCE_WIFI%%==0 ^( echo echo Checking for USB connection... echo for /f "delims=" %%%%i in ^('adb devices ^| find "device" ^| find /v "List"'^) do set USB_FOUND=1 echo. echo if defined USB_FOUND ^( echo echo + Control Hub connected via USB echo echo. echo adb install -r "!APK_PATH!" echo if not errorlevel 1 set "INSTALLED=1" echo ^) else ^( echo if %%FORCE_USB%%==1 ^( echo echo Error: No USB device found echo echo Make sure Control Hub is connected and USB debugging is enabled echo exit /b 1 echo ^) else ^( echo echo No USB device detected echo ^) echo ^) echo ^) echo. echo REM Try WiFi if USB didn't work echo if "!INSTALLED!"=="0" if %%FORCE_USB%%==0 ^( echo echo Trying WiFi connection to %%CONTROL_HUB_IP%%:%%CONTROL_HUB_PORT%%... echo echo. echo. echo adb connect %%CONTROL_HUB_IP%%:%%CONTROL_HUB_PORT%% ^>nul 2^>^&1 echo timeout /t 2 /nobreak ^>nul echo. echo adb devices ^| find "%%CONTROL_HUB_IP%%" ^>nul echo if not errorlevel 1 ^( echo echo + Connected via WiFi echo echo. echo adb install -r "!APK_PATH!" echo if not errorlevel 1 set "INSTALLED=1" echo ^) echo ^) echo. echo if "!INSTALLED!"=="0" ^( echo echo. echo echo ================================================================ echo echo Could not connect to Control Hub echo echo ================================================================ echo echo. echo echo Connection options: echo echo. echo echo 1. USB Connection ^(Recommended^) echo echo - Plug Control Hub into computer with USB cable echo echo - Run: deploy-to-robot.bat --usb echo echo. echo echo 2. WiFi Direct Connection echo echo - Connect to 'FIRST-xxxx-RC' network echo echo - Run: deploy-to-robot.bat --wifi echo echo. echo echo 3. Custom Network echo echo - Find Control Hub IP on your network echo echo - Run: deploy-to-robot.bat -i YOUR_IP echo echo. echo echo 4. Manual Install echo echo - APK built at: !APK_PATH! echo echo - Use Android Studio to deploy echo echo. echo exit /b 1 echo ^) echo. echo echo. echo echo ================================================================ echo echo + Deployment Complete! echo echo ================================================================ echo echo. echo echo On Driver Station: echo echo 1. Go to: OpModes menu echo echo 2. Select: TeleOp -^> 'Main TeleOp' echo echo 3. Press: INIT, then START echo echo. echo echo Your code is now running on the robot! 🤖 echo echo. echo. echo endlocal echo exit /b 0 ) > "%PROJECT_DIR%\deploy-to-robot.bat" endlocal exit /b 0