#!/usr/bin/env bash # Все записи подряд: для каждой — узел, проигрывание и строка сводки. # # docker run --rm --network host --ipc host -v <бэги>:/data:ro \ # -v <репо>/docker:/smoke:ro flyguard bash /smoke/check_all.sh # # Узел поднимается заново на каждую запись: это разные проезды, и состояние # одного (треки, ось пути) не должно перетекать в другой. «Кадров с тревогой» # на записи без препятствия — это ложные тревоги. set -u here="$(dirname "$0")" printf '%-38s %8s %9s %22s %26s\n' "запись" "принято" "обработ." "кадров с тревогой" "кадр: медиана / p95, мс" for bag in /data/*/; do [ -f "$bag/metadata.yaml" ] || continue name=$(basename "$bag") out=$(bash "$here/demo_test.sh" "$bag" 2>&1) recv=$(echo "$out" | grep -o "frames_received=[0-9]*" | cut -d= -f2) proc=$(echo "$out" | grep -o "frames_processed=[0-9]*" | cut -d= -f2) hits=$(echo "$out" | grep -o "кадров с обнаружением: [0-9]* ([0-9.]*%)" | sed 's/кадров с обнаружением: //') ms=$(echo "$out" | grep -o "медиана [0-9.]* мс, p95 [0-9.]*" | sed 's/медиана //; s/ мс, p95 / \/ /') first=$(echo "$out" | grep -o "ПРЕПЯТСТВИЕ: [0-9.]* м" | head -1) printf '%-38s %8s %9s %22s %26s %s\n' "$name" "${recv:--}" "${proc:--}" "${hits:-0}" "${ms:--}" "$first" done