Initial commit: AIS Map Android application

This commit is contained in:
ОС Программист
2025-09-02 15:58:16 +03:00
commit 629b403dd2
78 changed files with 9209 additions and 0 deletions
+132
View File
@@ -0,0 +1,132 @@
# Поддерживаемые типы AIS сообщений
## Обзор
Данный документ описывает типы AIS (Automatic Identification System) сообщений, которые поддерживаются в приложении AISMap.
## Основные типы сообщений
### 1. Position Reports (Типы 1, 2, 3)
- **Описание**: Отчеты о позиции судов класса A
- **Содержит**: MMSI, координаты, курс, скорость, направление, статус
- **Использование**: Основная информация о движении судов
### 2. Base Station Report (Тип 4)
- **Описание**: Отчет базовой станции
- **Содержит**: MMSI, дата/время, координаты, точность позиции, тип EPFD
- **Использование**: Информация о базовых станциях AIS
### 3. Static Data (Тип 5)
- **Описание**: Статические данные о судне
- **Содержит**: MMSI, IMO, название, позывной, тип судна, размеры, пункт назначения
- **Использование**: Детальная информация о судне
### 4. Safety Related Broadcast (Тип 14)
- **Описание**: Сообщения безопасности
- **Содержит**: MMSI, текст сообщения безопасности
- **Использование**: Важные сообщения о безопасности навигации
### 5. Class B Position Report (Тип 18)
- **Описание**: Отчет о позиции судов класса B
- **Содержит**: MMSI, координаты, курс, скорость, направление, точность
- **Использование**: Информация о малых судах и яхтах
### 6. Extended Class B Position Report (Тип 19)
- **Описание**: Расширенный отчет о позиции судов класса B
- **Содержит**: Все данные типа 18 + название, тип судна, размеры
- **Использование**: Подробная информация о малых судах
### 7. Aid-to-Navigation Report (Тип 21)
- **Описание**: Отчет о навигационных знаках
- **Содержит**: MMSI, тип знака, название, координаты, размеры
- **Использование**: Информация о маяках, буях и других навигационных знаках
### 8. Static Data Report (Тип 24)
- **Описание**: Отчет о статических данных (разделенный на части)
- **Часть A**: Название судна
- **Часть B**: Тип судна, производитель, позывной, размеры
- **Использование**: Дополнительная статическая информация
## Структура данных
### Поля MMSI
- **Размер**: 30 бит
- **Описание**: Уникальный идентификатор судна
- **Диапазон**: 0 - 999999999
### Координаты
- **Широта**: 27 бит, диапазон -90° до +90°
- **Долгота**: 28 бит, диапазон -180° до +180°
- **Точность**: 1/60000 градуса (~1.85 метра)
### Скорость и курс
- **Скорость**: 10 бит, диапазон 0-102.3 узла
- **Курс**: 12 бит, диапазон 0-359.9°
- **Направление**: 9 бит, диапазон 0-359°
### Размеры судна
- **Длина**: 10 бит, диапазон 0-1023 метра
- **Ширина**: 10 бит, диапазон 0-1023 метра
- **Осадка**: 8 бит, диапазон 0-25.5 метра
## Обработка фрагментов
### Многочастные сообщения
- Поддержка сообщений, разделенных на несколько частей
- Автоматическое объединение фрагментов
- Таймаут для устаревших фрагментов (10 секунд)
### Контрольные суммы
- Проверка контрольных сумм NMEA сообщений
- Отбрасывание сообщений с неверными контрольными суммами
## Логирование
### Уровни логирования
- **DEBUG**: Детальная информация о декодировании
- **INFO**: Основные события (создание судов, обновления)
- **WARN**: Предупреждения (неверные данные, устаревшие фрагменты)
- **ERROR**: Ошибки декодирования
### Информация в логах
- Тип сообщения и MMSI
- Декодированные значения
- Ошибки парсинга
- Статистика по спутникам
## Производительность
### Оптимизации
- Кэширование декодированных судов
- Автоматическая очистка устаревших данных
- Эффективные регулярные выражения для парсинга
### Мониторинг
- Количество активных AIS судов
- Время последнего обновления
- Статус активности судов
## Совместимость
### Стандарты
- IEC 61993-2 (AIS Class A)
- IEC 62287 (AIS Class B)
- NMEA 0183 (протокол передачи)
### Оборудование
- AIS трансиверы класса A и B
- Базовые станции
- Навигационные знаки с AIS
- Мобильные устройства с AIS
## Расширение функциональности
### Добавление новых типов
1. Добавить case в метод `decodeAISPayload`
2. Создать метод декодирования
3. Обновить модель `AISVessel` при необходимости
4. Добавить логирование и обработку ошибок
### Кастомные поля
- Поддержка региональных расширений
- Обработка производитель-специфичных данных
- Гибкая система метаданных