Files
radar_frontend/web_viewer
2025-11-20 16:07:36 +03:00
..
fix
2025-11-20 15:46:23 +03:00
2025-11-20 15:35:36 +03:00
2025-11-20 15:52:10 +03:00
fix
2025-11-20 15:46:23 +03:00
2025-11-18 12:26:48 +03:00
2025-11-20 16:07:36 +03:00
2025-11-18 12:26:48 +03:00
2025-11-18 12:26:48 +03:00
2025-11-18 12:26:48 +03:00

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

cd /home/awe/Documents/radar_frontend/web_viewer
pip install -r requirements.txt

Если у вас нет posix_ipc, установите его:

pip install posix_ipc

Сборка C++ приложения

cd /home/awe/Documents/radar_frontend/beacon_track/build
cmake ..
make

Настройка

Убедитесь, что в файле beacon_track/config.ini включены следующие параметры:

[Processing]
EnableFrameBuffer = true
FrameBufferMaxSize = 2097152
FrameBufferJpegQuality = 85

Запуск

1. Запустите C++ приложение beacon_track

cd /home/awe/Documents/radar_frontend/beacon_track/build
./main realtime output.txt

Это создаст shared memory сегмент BeaconFrameBuffer и начнет записывать кадры.

2. Запустите Flask сервер

В отдельном терминале:

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 без веб-интерфейса:

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