#!/bin/bash # Preflight: HyBBX off? handshake OK? quick echo on TNC2C. # Usage: ./tnc2c-check.sh [device] set -euo pipefail ROOT="$(cd "$(dirname "$0")" && pwd)" # shellcheck source=/dev/null [[ -f "$ROOT/tnc2c-serial.env" ]] && source "$ROOT/tnc2c-serial.env" DEV="${1:-${TNC2C_DEV:-/dev/ttyS4}}" BAUD="${TNC2C_BAUD:-19200}" LINE="${TNC2C_LINE:-7e1}" echo "=== TNC2C check: $DEV (${BAUD} ${LINE}) ===" if pgrep -x hybbx >/dev/null 2>&1; then echo "WARN: hybbx is running ($(pgrep -x hybbx | tr '\n' ' ')) - port may be in use" fi if fuser -s "$DEV" 2>/dev/null; then echo "WARN: $DEV in use:" fuser -v "$DEV" 2>&1 || true else echo "OK: $DEV not in use" fi if [[ ! -r "$DEV" || ! -w "$DEV" ]]; then echo "FAIL: no access to $DEV (dialout group?)" >&2 exit 1 fi case "$LINE" in 7e1|7E1) STTY="cs7 parenb -cstopb" ;; 8n1|8N1) STTY="cs8 -parenb -cstopb" ;; *) echo "Unknown line: $LINE" >&2; exit 1 ;; esac stty -F "$DEV" "$BAUD" $STTY raw -echo min 0 time 5 python3 <&1 | tail -20 fi echo "=== done ==="