#!/bin/sh
# deploy.sh — 部署新編譯的 firmware 到裝置並重啟 RTSP demo
#
# 使用方式（在裝置上執行）:
#   sh deploy.sh
#
# 前提：host 192.168.3.1:8080 在提供以下檔案：
#   /kp_firmware_host_stream   (compile.sh 的輸出)
#   /host_stream.ini            (kl630_build/ini/host_stream.ini)
#
# 一次性設定（只需在新機器上執行一次，之後重開機不需要再跑）:
#   sh deploy.sh --setup

set -e

HOST_URL="http://192.168.0.114:8080"
BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin
FW=/mnt/flash/vienna/kp_firmware_host_stream
INI=$BIN_DIR/ini/host_stream.ini

# ── 一次性 ISP 資源修正 ─────────────────────────────────────────────────────
# IMX662 DOL-HDR 需要 dwStatisticsSrcType=2 和 bGTREnable=1。
# 這些寫入 flash，重開機後自動保留，只需要執行一次。
one_time_setup() {
    echo "=== 一次性 ISP resource 設定 ==="
    sed -i 's/dwStatisticsSrcType = 0/dwStatisticsSrcType = 2/' \
        $BIN_DIR/Resource/AWB/AutoWhiteBalance.ini
    sed -i 's/bGTREnable = 0/bGTREnable = 1/' \
        $BIN_DIR/Resource/ISP/0/pqtable_ispe_Config.cfg
    sed -i 's/bGTREnable = 0/bGTREnable = 1/' \
        $BIN_DIR/Resource/ISP/1/pqtable_ispe_Config.cfg
    echo "  dwStatisticsSrcType=$(grep dwStatisticsSrcType $BIN_DIR/Resource/AWB/AutoWhiteBalance.ini | head -1)"
    echo "  bGTREnable=$(grep bGTREnable $BIN_DIR/Resource/ISP/0/pqtable_ispe_Config.cfg)"
    echo "=== 完成，之後重開機不需要再執行 ==="
}

if [ "$1" = "--setup" ]; then
    one_time_setup
    exit 0
fi

# ── 停止舊的 firmware ─────────────────────────────────────────────────────────
echo "=== 停止舊 firmware ==="
killall -9 kp_firmware_host_stream 2>/dev/null || true
killall -9 rtsps 2>/dev/null || true
sleep 1
rm -f /dev/shm/*

# ── 下載新 binary ─────────────────────────────────────────────────────────────
echo "=== 下載 firmware binary ==="
wget -q "$HOST_URL/kp_firmware_host_stream" -O $FW
chmod +x $FW
echo "  $FW: $(ls -lh $FW | awk '{print $5, $6, $7, $8}')"

# ── 下載新 INI（保留裝置端的 fusion_cfg / ISP 設定）─────────────────────────
echo "=== 下載 INI ==="
wget -q "$HOST_URL/host_stream.ini" -O $INI
echo "  fusion_cfg: $(grep '^fusion_cfg' $INI || echo '(not set!)')"

# ── 下載 demo_rtsp.sh（確保裝置上版本與 host 一致）────────────────────────────
echo "=== 下載 demo_rtsp.sh ==="
wget -q "$HOST_URL/demo_rtsp.sh" -O $BIN_DIR/ini/demo_rtsp.sh
chmod +x $BIN_DIR/ini/demo_rtsp.sh

# ── 啟動 RTSP demo ────────────────────────────────────────────────────────────
echo "=== 啟動 RTSP demo ==="
cd $BIN_DIR
sh ./ini/demo_rtsp.sh
