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,192 @@
@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