# Поддерживаемые типы 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. Добавить логирование и обработку ошибок ### Кастомные поля - Поддержка региональных расширений - Обработка производитель-специфичных данных - Гибкая система метаданных