Die Konsole (docs/tp6-marker/server.py) war beim Multi-Pin-Umbau nicht mitgezogen worden: hartkodiert auf 2 Clients, pinnte ueber die alte Gegen-AP-Automatik. Jetzt: - Client-Liste aus geraete.txt (schreibt tp25-walk-messung.sh), Fallback auf die zwei alten MACs fuer Alt-Laeufe. - Kein eigenes SSH mehr: je Client letzte Zeile von sampler-<name>.csv (AP/Signal) + Ping-Verlust aus walk-ping-<name>.csv. - N Client-Karten; Alarm, wenn ein gepinnter Client nirgends haengt. - Pin-UI: je Client AP/Band waehlen, set/off/verify via tp25-pin-multi.sh (POST /pinmulti). Alte 2-Client-Automatik (entscheide/pin_setzen/auto) entfernt; tp25-pin-s22.sh liefert nur noch die map. - tp25-runde.sh loest beim Aufraeumen den Multi-Pin statt des S22-Pins. Doku: Ist-Stand-Block + Quick-Index + Messwerkzeug-Bullets nachgezogen, neuer Handoff 2026-09-04. Co-Authored-By: Claude Code <noreply@anthropic.com>
76 lines
3.4 KiB
Bash
Executable File
76 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# TP25 — eine komplette Runde. Ein Befehl, ohne Claude.
|
|
#
|
|
# bash docs/tp25-runde.sh # Verzeichnis wird nach Datum/Uhrzeit benannt
|
|
# bash docs/tp25-runde.sh ap2-hoehe # eigener Name
|
|
#
|
|
# Startet die Klick-Konsole (Port 3031) und die Messung, sagt die Adresse fuer das Telefon
|
|
# an und raeumt beim Beenden auf. Zum Beenden: Ctrl-C in diesem Fenster.
|
|
#
|
|
# 🔴 Der Grund fuer dieses Skript: die beiden Einzelteile hatten als Standard-Laufverzeichnis
|
|
# einen Pfad in ein Sitzungs-Scratchpad. Wer sie ohne die passende Umgebungsvariable
|
|
# startete, mass in ein totes Verzeichnis -- und merkte es erst bei der Auswertung.
|
|
# Hier wird das Verzeichnis EINMAL bestimmt und an beide durchgereicht.
|
|
|
|
set -uo pipefail
|
|
HERE="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$HERE"
|
|
|
|
NAME="${1:-$(date +%Y%m%d-%H%M)}"
|
|
export TP6_RUN_DIR="$HERE/docs/messdaten/tp25-runde-$NAME"
|
|
# N-Geraete-Liste (name|ip|mac;...). Default = die bisherigen zwei, damit alte Aufrufe
|
|
# unveraendert weiterlaufen. Wird an tp25-walk-messung.sh durchgereicht.
|
|
export TP25_PHONES="${TP25_PHONES:-iphone|10.40.10.196|F2:62:4C:E1:AF:09;s22|10.40.10.178|2A:0D:B0:5D:AD:A7}"
|
|
|
|
mkdir -p "$TP6_RUN_DIR"
|
|
|
|
# Konsole: nur starten, wenn der Port frei ist -- eine zweite Instanz wuerde sofort sterben
|
|
# und die Marker der ersten waeren weg.
|
|
KONSOLE=""
|
|
if lsof -nP -iTCP:3031 -sTCP:LISTEN >/dev/null 2>&1; then
|
|
echo "Konsole laeuft bereits auf 3031 -- wird weiterverwendet."
|
|
else
|
|
python3 docs/tp6-marker/server.py > "$TP6_RUN_DIR/konsole.log" 2>&1 &
|
|
KONSOLE=$!
|
|
sleep 2
|
|
fi
|
|
|
|
echo
|
|
echo "════════════════════════════════════════════════════════════"
|
|
echo " Konsole am Telefon oeffnen:"
|
|
# 🔴 Adresse vom Interface lesen, nicht hartkodieren (Fehler vom 2026-08-22: die angesagte
|
|
# IP gehoerte einem Geraet, das seit 22 h nicht mehr im Netz war).
|
|
ifconfig | awk '/^[a-z0-9]+:/{i=substr($1,1,length($1)-1)}
|
|
/inet /{if ($2 !~ /^127\.|^169\.254\./) printf " http://%s:3031/ (%s)\n", $2, i}'
|
|
echo
|
|
echo " 1) Auf dem Telefon einmal irgendwo tippen -> schaltet den Signalton frei"
|
|
echo " 2) In der Konsole pinnen (Multi-Pin) -> je Client AP/Band waehlen, 'Pin setzen'"
|
|
echo " 3) Losgehen. Raum antippen, weiter -> Alarm = gepinnter Client haengt nirgends"
|
|
echo
|
|
echo " Lauf: $TP6_RUN_DIR"
|
|
echo "════════════════════════════════════════════════════════════"
|
|
echo
|
|
|
|
aufraeumen() {
|
|
echo
|
|
echo "Runde beendet. Aufraeumen …"
|
|
# 🔴 REIHENFOLGE: erst die Konsole toeten, dann den Pin loesen. Die Konsole pinnt nicht
|
|
# mehr automatisch (die alte Gegen-AP-Automatik ist mit dem Multi-Pin-Umbau 2026-09-04
|
|
# entfallen), aber sie haelt ggf. noch SSH-Sitzungen zum Manager offen -- die erst
|
|
# beenden, bevor der Pin geloest wird.
|
|
[[ -n "$KONSOLE" ]] && kill "$KONSOLE" 2>/dev/null && echo " Konsole beendet."
|
|
# Muster bewusst ohne -e/-p: es gab beide Varianten, und die enge Fassung liess den
|
|
# Sampler stehen.
|
|
pkill -f 'sshpass.*10.40.99.1' 2>/dev/null
|
|
pkill -f 'tp6-monitor-core.sh' 2>/dev/null
|
|
sleep 1
|
|
bash docs/tp25-pin-multi.sh off >/dev/null 2>&1 && echo " Multi-Pin geloest."
|
|
echo
|
|
echo "Auswertung:"
|
|
echo " python3 docs/tp25-gehweg-auswertung.py --dir $TP6_RUN_DIR"
|
|
}
|
|
trap aufraeumen EXIT
|
|
|
|
bash docs/tp25-walk-messung.sh
|