192 lines
6.1 KiB
Batchfile
192 lines
6.1 KiB
Batchfile
@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 ^<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 |