185 lines
8.1 KiB
Markdown
185 lines
8.1 KiB
Markdown
# GodEye Operator Console
|
||
|
||
Десктопное приложение для операторов системы видеонаблюдения GodEye. Приложение позволяет операторам подключаться к Android устройствам, получать видеопоток с камер и управлять съемкой.
|
||
|
||
## 🚀 Новые функции (v2.0)
|
||
|
||
### ✨ Улучшенный пользовательский интерфейс
|
||
- **Автосохранение настроек** - все настройки сохраняются автоматически
|
||
- **Автоподключение** - возможность автоматически подключаться к серверу при запуске
|
||
- **Мониторинг ping** - отображение задержки соединения в реальном времени
|
||
- **Статус индикаторы** - улучшенные индикаторы состояния подключения
|
||
|
||
### 📸 Расширенные возможности видео
|
||
- **Скриншоты** - сохранение кадров из видеопотока (`Ctrl+S`)
|
||
- **Полноэкранный режим** - просмотр видео в полный экран (`Ctrl+F`)
|
||
- **Увеличение видео** - масштабирование с возможностью перетаскивания
|
||
- **Picture-in-Picture** - режим "картинка в картинке" для многозадачности
|
||
|
||
### ⚙️ Улучшенные настройки
|
||
- **Persistent конфигурация** - сохранение размеров окна, настроек фильтров
|
||
- **Горячие клавиши** - быстрый доступ к основным функциям
|
||
- **Улучшенная запись** - автосохранение записей с метаданными
|
||
|
||
## <20> Технические характеристики
|
||
|
||
- **Electron**: v38.2.0 (последняя LTS версия)
|
||
- **Socket.IO**: v4.8.1 - для связи с backend сервером
|
||
- **UUID**: v11.0.3 - генерация уникальных идентификаторов
|
||
- **WebRTC** - для получения видеопотока
|
||
- **Node.js** - основная среда выполнения
|
||
|
||
|
||
## <20> Пошаговая инструкция: подключение к камере смартфона
|
||
|
||
1. **Запустите backend сервер**
|
||
- Откройте терминал и перейдите в папку `backend`
|
||
- Выполните команду: `node src/server.js`
|
||
- Убедитесь, что сервер работает на порту 3001
|
||
|
||
2. **Запустите Android клиент**
|
||
- Установите приложение GodEye Android Client на смартфон
|
||
- Запустите приложение и убедитесь, что оно подключено к серверу
|
||
|
||
3. **Запустите десктопное приложение оператора**
|
||
- Перейдите в папку `desktop-operator`
|
||
- Выполните команду: `npm install` (только при первом запуске)
|
||
- Запустите приложение: `npm run dev`
|
||
|
||
4. **Подключитесь к серверу**
|
||
- Введите URL сервера (по умолчанию: `http://localhost:3001`)
|
||
- Нажмите кнопку **"Подключиться"**
|
||
- Дождитесь появления списка доступных устройств
|
||
- При необходимости нажмите кнопку **"Обновить"** для обновления списка
|
||
|
||
5. **Выберите устройство**
|
||
- В списке устройств выберите нужный смартфон
|
||
|
||
6. **Запросите доступ к камере**
|
||
- Выберите тип камеры: Основная, Фронтальная, Широкоугольная, Телеобъектив
|
||
- Нажмите соответствующую кнопку
|
||
- Дождитесь подтверждения и появления видеопотока
|
||
|
||
7. **Управляйте видеопотоком**
|
||
- Используйте элементы управления для обработки изображения, записи, скриншотов и других функций
|
||
- Все действия отображаются в журнале событий
|
||
|
||
8. **Завершите сессию**
|
||
- Нажмите "Отключиться" для завершения работы
|
||
|
||
**Примечание:**
|
||
- Для стабильной работы убедитесь, что смартфон и ПК находятся в одной сети или сервер доступен из интернета.
|
||
- В случае проблем используйте журнал событий для диагностики.
|
||
|
||
### Установка зависимостей
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### Режим разработки
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
### Сборка приложения
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
### Создание дистрибутива
|
||
```bash
|
||
npm run dist
|
||
```
|
||
|
||
## ⌨️ Горячие клавиши
|
||
|
||
- `Ctrl+S` - Сделать скриншот
|
||
- `Ctrl+F` - Переключить полноэкранный режим
|
||
- `Ctrl+R` - Начать/остановить запись
|
||
- `Escape` - Выйти из полноэкранного режима
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
desktop-operator/
|
||
├── src/
|
||
│ ├── main.js # Основной процесс Electron
|
||
│ ├── config.js # Менеджер конфигурации
|
||
│ └── renderer/ # Интерфейс приложения
|
||
│ ├── index.html # HTML структура
|
||
│ ├── app.js # Логика приложения
|
||
│ └── styles.css # Стили интерфейса
|
||
├── assets/ # Ресурсы (иконки, изображения)
|
||
├── package.json # Конфигурация проекта
|
||
└── README.md # Документация
|
||
```
|
||
|
||
## 🔧 Конфигурация
|
||
|
||
Приложение автоматически создает файл конфигурации в:
|
||
- **Windows**: `%APPDATA%/godeye-operator/config.json`
|
||
- **macOS**: `~/Library/Application Support/godeye-operator/config.json`
|
||
- **Linux**: `~/.config/godeye-operator/config.json`
|
||
|
||
### Параметры конфигурации:
|
||
```json
|
||
{
|
||
"server": {
|
||
"url": "http://localhost:3001",
|
||
"autoConnect": false,
|
||
"reconnectAttempts": 3,
|
||
"reconnectInterval": 5000
|
||
},
|
||
"ui": {
|
||
"theme": "dark",
|
||
"language": "ru",
|
||
"windowBounds": { "width": 1400, "height": 900 },
|
||
"videoFilters": {
|
||
"brightness": 0,
|
||
"contrast": 0,
|
||
"saturation": 0,
|
||
"monochrome": false,
|
||
"edgeDetection": false
|
||
}
|
||
},
|
||
"recording": {
|
||
"quality": "high",
|
||
"format": "webm",
|
||
"maxDuration": 3600000,
|
||
"autoSave": true
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🌐 Интеграция с Backend
|
||
|
||
Приложение работает с backend сервером через WebSocket соединения:
|
||
|
||
- **Регистрация оператора** - `register:operator`
|
||
- **Список устройств** - `devices:list`
|
||
- **Запрос камеры** - `camera:request`
|
||
- **WebRTC сигналинг** - `webrtc:offer/answer/ice-candidate`
|
||
|
||
## 📋 Системные требования
|
||
|
||
- **ОС**: Windows 10+, macOS 10.15+, Ubuntu 18.04+
|
||
- **RAM**: 4 GB (рекомендуется 8 GB)
|
||
- **Дисковое пространство**: 200 MB
|
||
- **Сеть**: Стабильное интернет-соединение для WebRTC
|
||
|
||
## 🐛 Отладка
|
||
|
||
Для запуска в режиме отладки:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
Это откроет DevTools для диагностики проблем.
|
||
|
||
## 📝 Лицензия
|
||
|
||
MIT License - см. файл LICENSE для деталей.
|
||
|
||
---
|
||
|
||
**GodEye Team** | Система видеонаблюдения следующего поколения |