tiandytdd
This commit is contained in:
1 parent
ddea6d0578
commit
5746fa10db
5 files changed
+122
-20
No files matched your search
+45
-1
@@ -2,4 +2,48 @@
|
||||
set -euo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
export PYTHONDONTWRITEBYTECODE=1
|
||||
exec python3 "$SCRIPT_DIR/interactive_calibrator.py"
|
||||
|
||||
control_paused=false
|
||||
wait_for_smart_cam() {
|
||||
local deadline=$((SECONDS + 180))
|
||||
local stable_checks=0
|
||||
while (( SECONDS < deadline )); do
|
||||
if docker inspect -f '{{.State.Running}}' smart-cam 2>/dev/null | grep -qx true \
|
||||
&& docker exec smart-cam curl -fsS --max-time 5 -o /dev/null \
|
||||
http://127.0.0.1:18080/health 2>/dev/null; then
|
||||
stable_checks=$((stable_checks + 1))
|
||||
if (( stable_checks >= 8 )); then
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
stable_checks=0
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
resume_control() {
|
||||
local exit_code=$?
|
||||
trap - EXIT
|
||||
if [[ "$control_paused" == true ]]; then
|
||||
printf '\n正在恢复smart-cam巡航和自动追踪……\n'
|
||||
if ! wait_for_smart_cam \
|
||||
|| ! docker exec smart-cam smart-camctl control resume; then
|
||||
printf '错误:标定已结束,但自动恢复失败。请立即手动执行:\n' >&2
|
||||
printf ' docker exec smart-cam smart-camctl control resume\n' >&2
|
||||
exit_code=1
|
||||
fi
|
||||
fi
|
||||
exit "$exit_code"
|
||||
}
|
||||
trap resume_control EXIT
|
||||
|
||||
printf '正在暂停smart-cam的扫图、巡航和自动追踪,准备独占云台……\n'
|
||||
if ! docker exec smart-cam smart-camctl control pause; then
|
||||
printf '错误:无法暂停smart-cam自动控制,本次不启动标定。\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
control_paused=true
|
||||
|
||||
python3 "$SCRIPT_DIR/interactive_calibrator.py"
|
||||
Reference in new issue
Block a user