#!/usr/bin/env bash
# UART vs HS witness — kernel/chip FIFO vs GPIO SLV-IN/MST-IN.
#
# Stop bridge/uartd first. Run one Master SCR or wait for progressive while probing.
#
# Usage (pos3 Master / machine channel):
#   cd ~/EtherGold/4-Board\ Test\ Fixture/fixture-timing
#   bash run_uart_hs_fifo_probe.sh
#   bash run_uart_hs_fifo_probe.sh --channel both --trigger scr
#
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${ROOT}"

export FIXTURE_POS="${FIXTURE_POS:-3}"

for _sync in \
  "${ETHERGOLD_SYNC:-}" \
  "${ROOT}/../sync" \
  "/home/topbox/EtherGold/sync"; do
  if [[ -f "${_sync}/stop_fixture_gremlins.sh" ]]; then
    bash "${_sync}/stop_fixture_gremlins.sh" 2>/dev/null || true
    break
  fi
done
unset _sync

LOG_DIR="${ROOT}/logs"
mkdir -p "${LOG_DIR}"
LOG_FILE="${LOG_DIR}/uart_hs_fifo_probe.log"
echo "=== $(date -u +%Y-%m-%dT%H:%M:%SZ) pos=${FIXTURE_POS} $* ===" | tee -a "${LOG_FILE}"
python3 "${ROOT}/tools/uart_hs_fifo_probe.py" --fixture-pos "${FIXTURE_POS}" "$@" 2>&1 | tee -a "${LOG_FILE}"
exit "${PIPESTATUS[0]}"
