diff --git a/docs/tp25-walk-messung.sh b/docs/tp25-walk-messung.sh new file mode 100755 index 0000000..5339c7b --- /dev/null +++ b/docs/tp25-walk-messung.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# +# TP25 — Gehweg-Messung: was kostet eine WLAN-Uebergabe wirklich? +# +# Beantwortet die Frage, die die Sampler-Daten offen lassen: bei jedem AP-/Bandwechsel steht in +# der Registration-Table ~4 s lang kein Durchsatz — aber die Zaehler starten nach einer +# Neuanmeldung ohnehin bei null. Ein Ping AUF das Telefon trennt beides: +# Paketverlust = echte Funkstille · kein Verlust = die 4 s waren Buchhaltung. +# +# Braucht KEINEN Call. Misst nur, aendert nichts. +# +# bash docs/tp25-walk-messung.sh # laeuft bis Ctrl-C bzw. bis "Stoppen" geklickt wird +# +# Waehrend des Gehens auf der Konsole: 🚶 beim Losgehen, 📍 beim Stehenbleiben. + +set -uo pipefail + +RUN_DIR="${TP6_RUN_DIR:-/private/tmp/claude-501/-Users-christophemsenhuber-dev-bf-network-r6/0d86ebd1-035f-4513-a231-5cca8111ecfd/scratchpad/tp6-run2}" +PHONE="${TP25_PHONE_IP:-10.40.10.196}" +PHONE_MAC="${TP25_PHONE_MAC:-F2:62:4C:E1:AF:09}" +STATE="$RUN_DIR/phase.json" +MARKERS="$RUN_DIR/markers.csv" +HERE="$(cd "$(dirname "$0")/.." && pwd)" + +mkdir -p "$RUN_DIR" +[[ -f "$MARKERS" ]] || echo "ts_epoch,ts_local,marker" > "$MARKERS" + +# Frueheren Lauf beiseitelegen, statt ihn zu ueberschreiben. +if [[ -f "$RUN_DIR/sampler.csv" ]]; then + ARCHIV="$RUN_DIR/archiv-$(date +%H%M%S)"; mkdir -p "$ARCHIV" + for f in sampler.csv markers.csv walk-ping.log ping-dauerlauf.log; do + [[ -f "$RUN_DIR/$f" ]] && mv "$RUN_DIR/$f" "$ARCHIV/" + done + echo "ts_epoch,ts_local,marker" > "$MARKERS" + echo "Vorheriger Lauf -> $ARCHIV" +fi + +state() { + python3 - "$STATE" "$1" <<'PY' +import json, os, sys +p, inst = sys.argv[1], sys.argv[2] +tmp = p + ".tmp" +with open(tmp, "w") as fh: + json.dump({"mode": "langzeit", "phase": "GEHWEG", "title": "Roaming-Messung läuft", + "instruction": inst, "step": 0, "steps": 0, "ends": 0}, fh) +os.replace(tmp, p) +PY +} + +state "Kein Call nötig. 🚶 drücken, wenn du losgehst, 📍 wenn du stehen bleibst — und bitte den Weg gehen, den du beim Telefonieren wirklich gehst.

Ich pinge dein Telefon fünfmal pro Sekunde. Jeder AP- oder Bandwechsel zeigt sich dann als echter Paketverlust: so lange ist der Call wirklich tot.

Am Ende: ⏹ Aufzeichnung stoppen." + +# Sampler am Manager (1-s-Takt, feiner als bei der TP6-Messung) +bash "$HERE/docs/tp6-monitor-core.sh" --out "$RUN_DIR/sampler.csv" --mac "$PHONE_MAC" --interval 1 \ + > "$RUN_DIR/sampler.out" 2>&1 & SAMPLER=$! + +# 5 Pings/s auf das Telefon, mit lokalem Zeitstempel je Zeile +ping -i 0.2 "$PHONE" | while IFS= read -r l; do + printf '%s %s\n' "$(date +%H:%M:%S)" "$l" +done > "$RUN_DIR/walk-ping.log" 2>&1 & PINGER=$! + +trap 'kill $SAMPLER $PINGER 2>/dev/null; pkill -f "ping -i 0.2 $PHONE" 2>/dev/null; state "Aufzeichnung gestoppt."; echo; echo "Gestoppt."' EXIT + +echo "Gehweg-Messung laeuft." +echo " Funk -> $RUN_DIR/sampler.csv" +echo " Ping -> $RUN_DIR/walk-ping.log" +while true; do touch "$STATE" 2>/dev/null; sleep 5; done