# Поддерживаемые типы 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. Добавить логирование и обработку ошибок

### Кастомные поля
- Поддержка региональных расширений
- Обработка производитель-специфичных данных
- Гибкая система метаданных
