Initial import from bf-network-r6.opencode — opencode migration
This commit is contained in:
84
docs/tp25-runde.sh
Executable file
84
docs/tp25-runde.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/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"
|
||||
export TP25_PHONE_IP="${TP25_PHONE_IP:-10.40.10.178}" # S22 -- wird gepingt
|
||||
export TP25_PHONE_MAC="${TP25_PHONE_MAC:-2A:0D:B0:5D:AD:A7}"
|
||||
export TP25_IPHONE_MAC="${TP25_IPHONE_MAC:-F2:62:4C:E1:AF:09}"
|
||||
|
||||
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
|
||||
|
||||
# 🔴 Gegen-AP-Automatik gleich einschalten. Sie war bisher ein Klick auf der Konsole -- und
|
||||
# wer ihn vergisst, geht die ganze Runde mit beiden Telefonen auf DEMSELBEN AP und merkt
|
||||
# es erst bei der Auswertung (im Test am 2026-08-22 genau so passiert). Abschalten geht
|
||||
# weiter jederzeit ueber den Knopf.
|
||||
curl -s -X POST --max-time 10 "http://127.0.0.1:3031/auto?an=1" >/dev/null 2>&1 \
|
||||
&& echo "Gegen-AP-Automatik: EIN" \
|
||||
|| echo "⚠️ Automatik konnte nicht eingeschaltet werden -- auf der Konsole nachholen!"
|
||||
|
||||
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) Gegen-AP-Automatik laeuft bereits -> S22 folgt dem iPhone spiegelverkehrt"
|
||||
echo " 3) Losgehen. Doppelton = beide angemeldet -> Raum antippen, weiter"
|
||||
echo
|
||||
echo " Lauf: $TP6_RUN_DIR"
|
||||
echo "════════════════════════════════════════════════════════════"
|
||||
echo
|
||||
|
||||
aufraeumen() {
|
||||
echo
|
||||
echo "Runde beendet. Aufraeumen …"
|
||||
# 🔴 REIHENFOLGE: erst die Konsole toeten, dann den Pin loesen. Andersherum ist es ein
|
||||
# Wettlauf, den man verliert -- die Automatik der noch laufenden Konsole sieht den
|
||||
# geloesten Pin und setzt ihn binnen zwei Sekunden wieder. Am 2026-08-22 meldete der
|
||||
# Aufraeumer brav "AP-Pin geloest", und danach standen die Regeln trotzdem am Core:
|
||||
# das Telefon waere nach jeder Runde gepinnt geblieben.
|
||||
[[ -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-s22.sh off >/dev/null 2>&1 && echo " AP-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
|
||||
Reference in New Issue
Block a user