Fixed some errors that were showing
This commit is contained in:
231
linux/lib.sh
231
linux/lib.sh
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user