Test server
This commit is contained in:
parent
43c120df4c
commit
1e2a276126
3 changed files with 317 additions and 6 deletions
40
README.md
40
README.md
|
|
@ -47,6 +47,46 @@ python3 test_server.py --speedup 200 --start 5900 # сразу перед ра
|
|||
Эмулирует полный профиль полёта (подъём 5 м/с → разрыв на 30 км → спуск) в
|
||||
точном формате пакетов бэкенда. Подключаться на `ws://localhost:8765/`.
|
||||
|
||||
## Демо бок-о-бок с leaflet_svelte (через Django, как в проде)
|
||||
|
||||
```bash
|
||||
scripts/demo-stack.sh # Django :8000 + leaflet :5173 + дэшборд :5174 + станция
|
||||
scripts/demo-stack.sh restart-flight # полёт заново: рестарт станции + чистка истории в БД
|
||||
scripts/demo-stack.sh stop
|
||||
```
|
||||
|
||||
Станция летит по `mock_prediction.json` из корня репозиториев (реальный
|
||||
предикт) со случайным дрейфом до ±5 км. Каждый запуск/`restart-flight`
|
||||
начинает полёт с нуля; после него нажми «Отключиться/Подключиться» в обоих
|
||||
окнах, чтобы сбросить старые графики. Темп: `SPEEDUP=60 scripts/demo-stack.sh`.
|
||||
|
||||
Скрипт также поднимает **фейковый predictor на :8080** (захардкоженный адрес
|
||||
`TawhiriClient` в Django), который отдаёт тот же `mock_prediction.json` —
|
||||
поэтому «Рассчитать» в leaflet возвращает ровно ту траекторию, по которой
|
||||
летит станция. Порядок для оверлея прогноза в слежении: `/predict` →
|
||||
«Рассчитать» → перейти на «Слежение» **кликом в навбаре** (результат прогноза
|
||||
живёт в памяти SPA и не переживает перезагрузку страницы) → выбрать рабочую
|
||||
область в «Сравнении с прогнозом». Если на :8080 уже работает настоящий
|
||||
predictor — скрипт его не трогает и прогнозы идут через него.
|
||||
|
||||
График отклонений сопоставляет точки по времени: при ускоренном полёте
|
||||
(speedup > 1) времена телеметрии и прогноза расходятся — для честного
|
||||
сравнения ставь дату запуска в форме «сейчас» и `SPEEDUP=1`.
|
||||
|
||||
Скрипт (адаптация leaflet_svelte/scripts/run-stack.sh под новые пути) сам
|
||||
создаёт спутник и токен, запускает `test_server.py --push` как наземную
|
||||
станцию и печатает UUID спутника. Дальше:
|
||||
|
||||
- **leaflet**: http://localhost:5173/track → логин demo/demo → вставить UUID →
|
||||
«Подключиться»;
|
||||
- **дэшборд**: http://localhost:5174/ → адрес
|
||||
`ws://localhost:8000/api/ws/satellite/<UUID>/telemetry/` → «Подключиться»
|
||||
(адрес запоминается в localStorage; история за прошедший полёт подтянется
|
||||
по REST автоматически).
|
||||
|
||||
Оба окна читают один и тот же поток из Django. Если фронты уже запущены
|
||||
руками — скрипт их не трогает, просто вставь UUID в оба окна.
|
||||
|
||||
## Пре-флайт аудит форматов
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue