#!/usr/bin/env bash

# Linux USB Serial Low Latency Setup Script
PORT="${1:-/dev/ttyUSB0}"

if [ ! -e "$PORT" ]; then
    echo "[오류] 포트 $PORT 가 존재하지 않습니다."
    exit 1
fi

# /dev/ttyMOTOR 같은 udev 고정 심볼릭 링크로 넘어올 수 있으므로, sysfs 조회에
# 필요한 실제 장치명(ttyUSB0 등)으로 반드시 풀어준다 — 안 그러면
# /sys/bus/usb-serial/devices/ttyMOTOR 경로가 존재하지 않아 항상 폴백으로 샌다.
DEV_NAME=$(basename "$(readlink -f "$PORT")")
LATENCY_PATH="/sys/bus/usb-serial/devices/$DEV_NAME/latency_timer"

if [ -f "$LATENCY_PATH" ]; then
    OLD_VAL=$(cat "$LATENCY_PATH")
    echo "$OLD_VAL" | sudo tee "$LATENCY_PATH" > /dev/null 2>&1 || echo 1 | sudo tee "$LATENCY_PATH"
    NEW_VAL=$(cat "$LATENCY_PATH")
    echo "[성공] USB 시리얼 포트 $PORT 지연 타이머 변경: ${OLD_VAL}ms -> ${NEW_VAL}ms"
else
    # setserial fallback
    setserial "$PORT" low_latency 2>/dev/null || true
    echo "[정보] setserial low_latency 명령을 적용했습니다."
fi
