Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'
This commit is contained in:
86
vendor/ruvector/examples/ruvLLM/esp32-flash/cluster-monitor.sh
vendored
Executable file
86
vendor/ruvector/examples/ruvLLM/esp32-flash/cluster-monitor.sh
vendored
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# RuvLLM ESP32 - Cluster Monitor
|
||||
# Opens serial monitors for all chips in cluster
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
CONFIG_FILE="${1:-cluster.toml}"
|
||||
|
||||
echo "╔══════════════════════════════════════════════════════════╗"
|
||||
echo "║ RuvLLM ESP32 - Cluster Monitor ║"
|
||||
echo "╚══════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo "Error: $CONFIG_FILE not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract ports
|
||||
PORTS=$(grep 'port = ' "$CONFIG_FILE" | cut -d'"' -f2)
|
||||
NUM_PORTS=$(echo "$PORTS" | wc -l)
|
||||
|
||||
echo "Found $NUM_PORTS chips in cluster"
|
||||
echo ""
|
||||
|
||||
# Check for tmux
|
||||
if command -v tmux &> /dev/null; then
|
||||
echo "Using tmux for multi-pane view..."
|
||||
|
||||
# Create new tmux session
|
||||
SESSION="ruvllm-cluster"
|
||||
tmux kill-session -t $SESSION 2>/dev/null || true
|
||||
tmux new-session -d -s $SESSION
|
||||
|
||||
PANE=0
|
||||
for PORT in $PORTS; do
|
||||
if [ $PANE -gt 0 ]; then
|
||||
tmux split-window -t $SESSION
|
||||
tmux select-layout -t $SESSION tiled
|
||||
fi
|
||||
|
||||
# Start monitor in pane
|
||||
tmux send-keys -t $SESSION.$PANE "echo 'Chip $((PANE+1)): $PORT' && espflash monitor --port $PORT" Enter
|
||||
PANE=$((PANE + 1))
|
||||
done
|
||||
|
||||
tmux select-layout -t $SESSION tiled
|
||||
tmux attach-session -t $SESSION
|
||||
|
||||
elif command -v screen &> /dev/null; then
|
||||
echo "Using screen (press Ctrl+A then n to switch between chips)..."
|
||||
|
||||
CHIP=1
|
||||
for PORT in $PORTS; do
|
||||
screen -dmS "chip$CHIP" espflash monitor --port "$PORT"
|
||||
echo "Started screen session 'chip$CHIP' for $PORT"
|
||||
CHIP=$((CHIP + 1))
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Attach with: screen -r chip1"
|
||||
echo "Switch with: Ctrl+A, n"
|
||||
echo "Detach with: Ctrl+A, d"
|
||||
|
||||
else
|
||||
echo "Note: Install tmux or screen for multi-pane monitoring"
|
||||
echo ""
|
||||
echo "Opening monitors in separate terminals..."
|
||||
|
||||
CHIP=1
|
||||
for PORT in $PORTS; do
|
||||
if command -v gnome-terminal &> /dev/null; then
|
||||
gnome-terminal --title="Chip $CHIP: $PORT" -- espflash monitor --port "$PORT" &
|
||||
elif command -v xterm &> /dev/null; then
|
||||
xterm -title "Chip $CHIP: $PORT" -e "espflash monitor --port $PORT" &
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
osascript -e "tell app \"Terminal\" to do script \"espflash monitor --port $PORT\""
|
||||
else
|
||||
echo "Monitor chip $CHIP manually: espflash monitor --port $PORT"
|
||||
fi
|
||||
CHIP=$((CHIP + 1))
|
||||
done
|
||||
fi
|
||||
Reference in New Issue
Block a user