Fixed some errors that were showing

This commit is contained in:
Eric Ratliff
2026-01-24 12:47:04 -06:00
parent fd9c573131
commit 9bd16f3dd0
2 changed files with 237 additions and 14 deletions

View File

@@ -90,25 +90,230 @@ CONTROL_HUB_PORT="5555"
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help) echo "Deploy to Control Hub"; echo "Usage: $0 [--usb|--wifi] [-i IP]"; exit 0 ;;
-h|--help)
echo "════════════════════════════════════════════════════════════════"
echo " Deploy FTC Project to Control Hub"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "Usage: $0 [options]"
echo ""
echo "Options:"
echo " --usb Force USB connection"
echo " --wifi Force WiFi Direct connection"
echo " -i, --ip <ip> Custom Control Hub IP"
echo " -h, --help Show this help"
echo ""
echo "Examples:"
echo " $0 # Auto-detect connection"
echo " $0 --usb # Use USB only"
echo " $0 --wifi # Use WiFi Direct"
echo " $0 -i 192.168.1.5 # Custom IP"
echo ""
exit 0
;;
-i|--ip) CONTROL_HUB_IP="$2"; shift 2 ;;
--usb) FORCE_USB=true; shift ;;
--wifi) FORCE_WIFI=true; shift ;;
*) shift ;;
esac
done
echo "Deploying to SDK..."
./gradlew deployToSDK || exit 1
echo "Building APK..."
cd "${HOME}/ftc-sdk" && ./gradlew build || exit 1
APK_PATH="${HOME}/ftc-sdk/FtcRobotController/build/outputs/apk/debug/FtcRobotController-debug.apk"
[ -f "$APK_PATH" ] || { echo "APK not found"; exit 1; }
echo "Installing..."
if adb devices | grep -q device; then
adb install -r "$APK_PATH" && echo "✓ Deployed!" || exit 1
else
adb connect "$CONTROL_HUB_IP:$CONTROL_HUB_PORT" && sleep 2
adb install -r "$APK_PATH" && echo "✓ Deployed!" || exit 1
echo "════════════════════════════════════════════════════════════════"
echo " FTC Project Deployment"
echo "════════════════════════════════════════════════════════════════"
echo ""
# Step 1: Deploy code to SDK
echo "Step 1: Deploying code to SDK TeamCode..."
if ! ./gradlew deployToSDK; then
echo ""
echo "Error: Failed to deploy code"
echo "Make sure you're in the project directory"
exit 1
fi
echo "✓ Code deployed"
echo ""
# Step 2: Build APK
echo "Step 2: Building APK..."
SDK_DIR="${HOME}/ftc-sdk"
if [ ! -d "$SDK_DIR" ]; then
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " Error: FTC SDK Not Found"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "The FTC SDK should be at: $SDK_DIR"
echo ""
echo "This should have been set up when you created the project."
echo ""
echo "To fix:"
echo " git clone --depth 1 --branch v10.1.1 \\"
echo " https://github.com/FIRST-Tech-Challenge/FtcRobotController.git \\"
echo " ~/ftc-sdk"
echo ""
exit 1
fi
cd "$SDK_DIR" || exit 1
# Check for Android SDK configuration
if [ ! -f "local.properties" ] && [ -z "$ANDROID_HOME" ]; then
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " Error: Android SDK Not Configured"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "The FTC SDK needs the Android SDK to build APKs."
echo ""
echo "FIX OPTION 1: Set ANDROID_HOME (recommended)"
echo " export ANDROID_HOME=/path/to/android/sdk"
echo " echo 'export ANDROID_HOME=/path/to/android/sdk' >> ~/.bashrc"
echo ""
echo "FIX OPTION 2: Create local.properties"
echo " echo 'sdk.dir=/path/to/android/sdk' > ~/ftc-sdk/local.properties"
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " How to Install Android SDK"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "1. Download Android Studio:"
echo " https://developer.android.com/studio"
echo ""
echo "2. Install and open Android Studio"
echo ""
echo "3. Go to: Tools → SDK Manager"
echo ""
echo "4. Note the 'Android SDK Location' path shown"
echo ""
echo "5. Use that path in FIX OPTION 1 or 2 above"
echo ""
echo "Typical Android SDK locations:"
echo " • Linux: ~/Android/Sdk"
echo " • macOS: ~/Library/Android/sdk"
echo " • Windows: C:\\Users\\YourName\\AppData\\Local\\Android\\Sdk"
echo ""
echo "════════════════════════════════════════════════════════════════"
echo ""
exit 1
fi
if ! ./gradlew build; then
echo ""
echo "Error: APK build failed"
echo "Check the error messages above for details"
exit 1
fi
APK_PATH="$SDK_DIR/FtcRobotController/build/outputs/apk/debug/FtcRobotController-debug.apk"
if [ ! -f "$APK_PATH" ]; then
echo ""
echo "Error: APK not found at expected location"
echo "Expected: $APK_PATH"
exit 1
fi
echo "✓ APK built"
echo ""
# Step 3: Install to Control Hub
echo "Step 3: Installing to Control Hub..."
if ! command -v adb &> /dev/null; then
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " Error: adb Command Not Found"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "The 'adb' tool is needed to install APKs to the Control Hub."
echo ""
echo "Install:"
echo " • Ubuntu/Debian: sudo apt install android-tools-adb"
echo " • Arch Linux: sudo pacman -S android-tools"
echo " • macOS: brew install android-platform-tools"
echo ""
echo "Or download Android Platform Tools:"
echo " https://developer.android.com/studio/releases/platform-tools"
echo ""
exit 1
fi
INSTALLED=false
# Try USB first
if [ "$FORCE_WIFI" != "true" ]; then
USB_COUNT=$(adb devices | grep -v "List" | grep "device$" | wc -l)
if [ "$USB_COUNT" -gt 0 ]; then
echo "✓ Control Hub connected via USB"
if adb install -r "$APK_PATH"; then
INSTALLED=true
fi
elif [ "$FORCE_USB" = "true" ]; then
echo ""
echo "Error: No USB device found (--usb specified)"
echo ""
echo "Make sure:"
echo " • Control Hub is powered on"
echo " • USB cable is connected"
echo " • USB debugging is enabled"
echo ""
exit 1
fi
fi
# Try WiFi if USB didn't work
if [ "$INSTALLED" = "false" ] && [ "$FORCE_USB" != "true" ]; then
echo "Connecting to Control Hub via WiFi ($CONTROL_HUB_IP:$CONTROL_HUB_PORT)..."
adb connect "$CONTROL_HUB_IP:$CONTROL_HUB_PORT" 2>&1 | grep -v "cannot connect" || true
sleep 2
if adb devices | grep -q "$CONTROL_HUB_IP"; then
echo "✓ Connected via WiFi"
if adb install -r "$APK_PATH"; then
INSTALLED=true
fi
fi
fi
if [ "$INSTALLED" = "false" ]; then
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " Error: Could Not Connect to Control Hub"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "Connection options:"
echo ""
echo "1. USB (Recommended)"
echo " • Plug Control Hub into computer"
echo " • Run: $0 --usb"
echo ""
echo "2. WiFi Direct"
echo " • Connect to 'FIRST-xxxx-RC' network"
echo " • Run: $0 --wifi"
echo " • Default IP: 192.168.43.1"
echo ""
echo "3. Custom Network"
echo " • Find Control Hub IP on your network"
echo " • Run: $0 -i YOUR_IP"
echo ""
echo "Debug:"
echo " • Check devices: adb devices"
echo " • Test connection: adb connect $CONTROL_HUB_IP:$CONTROL_HUB_PORT"
echo ""
exit 1
fi
echo ""
echo "════════════════════════════════════════════════════════════════"
echo " ✓ Deployment Complete!"
echo "════════════════════════════════════════════════════════════════"
echo ""
echo "On Driver Station:"
echo " 1. Go to OpModes menu"
echo " 2. Select TeleOp → 'Main TeleOp'"
echo " 3. Press INIT, then START"
echo ""
echo "Your code is now running on the robot! 🤖"
echo ""
ENDSCRIPT
chmod +x "$project_dir/deploy-to-robot.sh"
}

View File

@@ -11,12 +11,14 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Test results
TESTS_RUN=0
TESTS_PASSED=0
TESTS_FAILED=0
FAILED_TESTS=()
# Helper functions
pass() {
@@ -27,6 +29,7 @@ pass() {
fail() {
echo -e "${RED}${NC} $1"
FAILED_TESTS+=("$1")
((TESTS_FAILED++))
((TESTS_RUN++))
}
@@ -35,6 +38,12 @@ info() {
echo -e "${YELLOW}${NC} $1"
}
section() {
echo ""
echo -e "${BLUE}${NC} $1"
echo "────────────────────────────────────────────────────────────────"
}
# Test suite selection
RUN_UNIT=true
RUN_SYSTEM=true
@@ -257,6 +266,15 @@ echo ""
echo "Total: $TESTS_RUN"
echo -e "${GREEN}Passed: $TESTS_PASSED${NC}"
echo -e "${RED}Failed: $TESTS_FAILED${NC}"
if [ $TESTS_FAILED -gt 0 ]; then
echo ""
echo "Failed tests:"
for test in "${FAILED_TESTS[@]}"; do
echo -e " ${RED}${NC} $test"
done
fi
echo ""
if [ $TESTS_FAILED -eq 0 ]; then
@@ -267,4 +285,4 @@ else
echo -e "${RED}✗ Some tests failed${NC}"
echo ""
exit 1
fi
fi