225 lines
12 KiB
Plaintext
225 lines
12 KiB
Plaintext
ПОЛНОЕ ТЕХНИЧЕСКОЕ ОПИСАНИЕ ПРИЛОЖЕНИЯ NVAV.SRV.RECORDER
|
||
================================================================
|
||
|
||
ОБЩЕЕ ОПИСАНИЕ:
|
||
Это Android-приложение для скрытого удаленного видеонаблюдения, которое превращает мобильное устройство в управляемую камеру с возможностью полного контроля со стороны оператора через десктопное приложение.
|
||
|
||
1. АРХИТЕКТУРА СИСТЕМЫ
|
||
======================
|
||
|
||
Приложение построено по архитектуре "клиент-сервер":
|
||
- Мобильное устройство = камера/клиент
|
||
- Десктопное приложение оператора = сервер управления
|
||
- Связь через TCP-соединение с кодированием команд
|
||
|
||
Основные компоненты:
|
||
- MActivity.java - главная активность и пользовательский интерфейс
|
||
- Speek.java - фоновый сервис для непрерывной работы
|
||
- Comand.java - обработчик команд и протокол связи
|
||
- CameraRecord.java - универсальный модуль записи камеры
|
||
- CameraASUSn.java - специализированный модуль для устройств ASUS
|
||
- CameraHUAWEIn.java - специализированный модуль для устройств HUAWEI
|
||
|
||
2. СИСТЕМА КАНАЛОВ И АУТЕНТИФИКАЦИИ
|
||
===================================
|
||
|
||
Предустановленные каналы связи:
|
||
Номера каналов: {0, 55, 54, 53, 51, 49, 48, 52, 50, 47, 46, 45}
|
||
Коды доступа: {"0000", "1111", "533D", "9A32", "DC8F", "1095", "4167", "2E43", "701B", "2BA9", "2BB4", "1F0E"}
|
||
|
||
Цветовые индикаторы каналов:
|
||
{"#000000", "#B22222", "#00FF7F", "#000080", "#FFFF00", "#7B68EE", "#DC143C", "#006400", "#00FFFF", "#FFA500", "#808080", "#87CEFA"}
|
||
|
||
Процесс активации:
|
||
1. При первом запуске пользователь вводит код доступа
|
||
2. Код сохраняется в классе ChenalC
|
||
3. Интерфейс окрашивается в соответствующий цвет канала
|
||
4. Заголовок приложения показывает номер активного канала
|
||
|
||
3. СЕТЕВОЕ ВЗАИМОДЕЙСТВИЕ И ПРОТОКОЛ
|
||
====================================
|
||
|
||
Протокол передачи данных:
|
||
- Тип 0x00: Проброс данных без обработки
|
||
- Тип 0x01: Текстовые команды управления
|
||
- Тип 0x07: Информация о камерах (сжата GZIP)
|
||
- Тип 0x08: Статистика видеопотока (FPS, битрейт, время)
|
||
- Тип 0x09: Информация о высокоскоростных режимах
|
||
|
||
Идентификация устройства:
|
||
Формат: "SerialNumber|Manufacturer||Model|Hardware"
|
||
Передается автоматически при подключении для идентификации устройства оператором.
|
||
|
||
Сжатие данных:
|
||
Метаданные камер сжимаются GZIP для экономии трафика при передаче технических характеристик.
|
||
|
||
4. УПРАВЛЕНИЕ КАМЕРАМИ
|
||
======================
|
||
|
||
Поддерживаемые команды:
|
||
- "start" - запуск стандартной записи (1920x1080, 30 FPS)
|
||
- "startHI" - высокоскоростная запись (1280x720, 120 FPS)
|
||
- "startH2" - сверхвысокоскоростная запись (1280x720, 240 FPS)
|
||
- "stop" - остановка записи
|
||
- "BitRate=N" - изменение битрейта видео
|
||
- "status" - запрос текущего статуса камеры
|
||
- "GetCameraInfo" - получение полных характеристик всех камер
|
||
|
||
Производитель-специфичные модули:
|
||
- HUAWEI: класс CameraHUAWEIn
|
||
- ASUS: класс CameraASUSn (с поддержкой мотора поворота)
|
||
- Универсальный: класс CameraRecord для остальных устройств
|
||
|
||
5. ВИДЕОКОДИРОВАНИЕ И ПЕРЕДАЧА
|
||
==============================
|
||
|
||
Технические параметры:
|
||
- Кодек: H.264/AVC (аппаратное кодирование)
|
||
- Формат цвета: COLOR_FormatSurface (2130708361)
|
||
- Битрейт по умолчанию: 1,000,000 bps (настраивается удаленно)
|
||
- I-frame интервал: 1 секунда
|
||
- Качество: динамически настраивается оператором
|
||
|
||
Статистика передачи:
|
||
Каждую секунду отправляется пакет со статистикой:
|
||
- Количество кадров в секунду (FPS)
|
||
- Объем данных в байтах
|
||
- Время передачи в миллисекундах
|
||
- Статус кодировщика
|
||
|
||
6. СПЕЦИАЛЬНЫЕ ФУНКЦИИ ДЛЯ ASUS
|
||
===============================
|
||
|
||
Моторизованная камера:
|
||
Intent: "com.asus.motorservice.MotorService"
|
||
Package: "com.asus.motorservice"
|
||
|
||
Устройства ASUS могут управлять поворотным механизмом камеры через системный сервис MotorService, позволяя оператору дистанционно поворачивать камеру.
|
||
|
||
7. МОНИТОРИНГ СИСТЕМЫ
|
||
=====================
|
||
|
||
Отслеживаемые параметры:
|
||
- Состояние батареи: уровень заряда, температура, состояние зарядки
|
||
- GPS-координаты устройства в реальном времени
|
||
- Статус подключения и качество связи
|
||
- Ошибки и исключения с автоматической отправкой оператору
|
||
|
||
Визуальная индикация:
|
||
- 4 светодиодных индикатора (L1-L4) показывают уровень соединения
|
||
- Прозрачность индикаторов отражает активность каналов
|
||
- Цвет ActionBar соответствует активному каналу
|
||
|
||
8. СИСТЕМА АВТООБНОВЛЕНИЯ
|
||
=========================
|
||
|
||
Серверы обновлений:
|
||
Основной: alanxorg.com (закодирован в Base64)
|
||
Резервный: newip.vidser.top (закодирован в Base64)
|
||
Файл обновления: /rec-release.apk
|
||
|
||
Процесс обновления:
|
||
1. Проверка версии на сервере каждые 1000 мс
|
||
2. Сравнение с датой модификации текущего APK
|
||
3. Автоматическое скачивание новой версии через DownloadManager
|
||
4. Автоматическая установка через FileProvider
|
||
5. Перезапуск приложения с новой версией
|
||
|
||
9. РАЗРЕШЕНИЯ И БЕЗОПАСНОСТЬ
|
||
============================
|
||
|
||
Требуемые разрешения:
|
||
- CAMERA: доступ к камере для записи видео
|
||
- SET_DEBUG_APP: отладочные функции
|
||
- WRITE_EXTERNAL_STORAGE: сохранение файлов
|
||
- READ_EXTERNAL_STORAGE: чтение файлов
|
||
- INTERNET: сетевое соединение
|
||
- READ_PHONE_STATE: информация о устройстве
|
||
- ACCESS_COARSE_LOCATION: примерное местоположение
|
||
- ACCESS_FINE_LOCATION: точное местоположение
|
||
|
||
Скрытность:
|
||
- Работает как фоновый сервис без постоянного UI
|
||
- Минимальный интерфейс, похожий на системное приложение
|
||
- Обработка всех ошибок без остановки работы
|
||
- Автоматический перезапуск при сбоях
|
||
|
||
10. ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС
|
||
=============================
|
||
|
||
Главный экран (MActivity):
|
||
- Поле ввода кода активации канала
|
||
- 4 индикатора статуса подключения (L1-L4)
|
||
- Кнопка запуска/остановки сервиса
|
||
- Долгое нажатие для сброса настроек
|
||
- Цветовая индикация активного канала
|
||
|
||
Функции интерфейса:
|
||
- Отображение номера канала в заголовке
|
||
- Toast-уведомления о статусе обновлений
|
||
- AlertDialog для подтверждения операций
|
||
- Динамическое изменение прозрачности индикаторов
|
||
|
||
11. ПРИНЦИП РАБОТЫ С ОПЕРАТОРОМ
|
||
===============================
|
||
|
||
Пошаговый процесс:
|
||
1. ИНИЦИАЛИЗАЦИЯ: Запуск приложения с вводом кода канала
|
||
2. АУТЕНТИФИКАЦИЯ: Проверка кода в массиве key_ch[]
|
||
3. ПОДКЛЮЧЕНИЕ: Установка TCP-соединения с сервером оператора
|
||
4. ИДЕНТИФИКАЦИЯ: Передача SerialNumber|Manufacturer|Model|Hardware
|
||
5. ОЖИДАНИЕ: Устройство готово к приему команд
|
||
6. ВЫПОЛНЕНИЕ: Обработка команд (запуск/остановка записи, настройки)
|
||
7. СТРИМИНГ: Передача H.264 видеопотока в реальном времени
|
||
8. ТЕЛЕМЕТРИЯ: Отправка статистики, GPS, состояния батареи
|
||
9. МОНИТОРИНГ: Непрерывный контроль состояния соединения
|
||
|
||
Команды управления от оператора:
|
||
- Выбор камеры (фронтальная/основная)
|
||
- Настройка разрешения и FPS
|
||
- Изменение битрейта на лету
|
||
- Управление мотором поворота (ASUS)
|
||
- Запрос диагностической информации
|
||
- Получение GPS-координат
|
||
- Мониторинг состояния батареи
|
||
|
||
12. ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ
|
||
===========================
|
||
|
||
Многопоточность:
|
||
- Главный поток UI (MActivity)
|
||
- Фоновый сервис (Speek)
|
||
- Поток обработки команд (Comand)
|
||
- Поток кодирования видео (CameraRecord)
|
||
- Поток сетевого I/O (InOut)
|
||
|
||
Обработка ошибок:
|
||
- Все исключения перехватываются и логируются
|
||
- Автоматическая отправка ошибок оператору
|
||
- Предотвращение дублирования одинаковых ошибок
|
||
- Счетчик повторяющихся ошибок
|
||
|
||
Оптимизация производительности:
|
||
- Аппаратное кодирование H.264
|
||
- Сжатие метаданных GZIP
|
||
- Буферизация сетевого трафика
|
||
- Автоматическая очистка очередей при переполнении
|
||
|
||
13. АРХИТЕКТУРА СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ
|
||
=======================================
|
||
|
||
Структура пакетов:
|
||
[Тип 1 байт][Данные переменной длины]
|
||
|
||
Очереди данных:
|
||
- in_queue: входящие команды от оператора
|
||
- out_queue: исходящие данные к оператору
|
||
- Потокобезопасные ConcurrentLinkedQueue
|
||
|
||
Контроль качества связи:
|
||
- Таймеры для отслеживания активности
|
||
- Автоматическая очистка при таймауте (600 мс)
|
||
- Статистика времени выполнения операций
|
||
|
||
Данная система обеспечивает полный удаленный контроль мобильного устройства как камеры видеонаблюдения с возможностью получения высококачественного видео в реальном времени и полной телеметрии устройства.
|