Files
radar_frontend/web_viewer/README.md
2025-11-18 12:26:48 +03:00

137 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Beacon Tracker Web Viewer
Веб-приложение для просмотра видео потока с камеры в реальном времени из проекта beacon_track.
## Архитектура
Приложение состоит из трех компонентов:
1. **C++ Beacon Tracker** - захватывает кадры с камеры, детектирует белую точку и записывает JPEG-кодированные кадры в shared memory
2. **Python Flask Server** - читает кадры из shared memory и стримит их через Server-Sent Events (SSE)
3. **HTML/JavaScript Frontend** - отображает видео поток в браузере
## Установка
### Зависимости для Python
```bash
cd /home/awe/Documents/radar_frontend/web_viewer
pip install -r requirements.txt
```
Если у вас нет `posix_ipc`, установите его:
```bash
pip install posix_ipc
```
### Сборка C++ приложения
```bash
cd /home/awe/Documents/radar_frontend/beacon_track/build
cmake ..
make
```
## Настройка
Убедитесь, что в файле `beacon_track/config.ini` включены следующие параметры:
```ini
[Processing]
EnableFrameBuffer = true
FrameBufferMaxSize = 2097152
FrameBufferJpegQuality = 85
```
## Запуск
### 1. Запустите C++ приложение beacon_track
```bash
cd /home/awe/Documents/radar_frontend/beacon_track/build
./main realtime output.txt
```
Это создаст shared memory сегмент `BeaconFrameBuffer` и начнет записывать кадры.
### 2. Запустите Flask сервер
В отдельном терминале:
```bash
cd /home/awe/Documents/radar_frontend/web_viewer
python3 app.py
```
Сервер запустится на `http://0.0.0.0:5000`
### 3. Откройте браузер
Перейдите на:
```
http://localhost:5000
```
или с другого компьютера в сети:
```
http://<IP_адресашегоомпьютера>:5000
```
## Тестирование shared memory reader
Чтобы проверить работу shared memory reader без веб-интерфейса:
```bash
cd /home/awe/Documents/radar_frontend/web_viewer
python3 shared_memory_reader.py
```
Это отобразит информацию о получаемых кадрах в консоли.
## API Endpoints
- `GET /` - главная страница с видео плеером
- `GET /stream` - Server-Sent Events stream с JPEG кадрами
- `GET /status` - JSON статус подключения и последнего кадра
- `GET /latest_frame` - последний кадр как JPEG изображение
## Возможные проблемы
### Shared memory не найден
Если вы видите ошибку "Shared memory segment 'BeaconFrameBuffer' does not exist":
1. Убедитесь, что C++ приложение beacon_track запущено
2. Проверьте, что в config.ini параметр `EnableFrameBuffer = true`
3. Убедитесь, что приложение скомпилировано после изменений
### Нет кадров
Если подключение установлено, но кадры не появляются:
1. Проверьте логи C++ приложения на наличие ошибок
2. Убедитесь, что камера работает корректно
3. Проверьте размер JPEG кадров - они не должны превышать `FrameBufferMaxSize`
### Низкий FPS
Если FPS низкий:
1. Увеличьте `FrameBufferJpegQuality` в config.ini (это уменьшит размер кадров)
2. Уменьшите разрешение камеры в config.ini
3. Проверьте загрузку CPU
## Производительность
- **Разрешение**: зависит от настроек камеры (например, 1920x1080)
- **FPS**: до 30-60 FPS (зависит от камеры и настроек)
- **Задержка**: обычно 20-100ms
- **Битрейт**: зависит от качества JPEG и содержимого кадра (обычно 1-5 Mbps)
## Лицензия
Часть проекта beacon_track