uWaveSuite — Руководство
Оглавление
- Подключение
- Настройки устройства
- Трекинг
- USBL
- VLBL (дальномерный режим)
- Чат
- POI (точки интереса)
- Топопривязка
- Карта и треки
- Экспорт
- Логирование
- Горячие клавиши
Подключение
- Подключите модем через USB-UART адаптер
- Откройте uWaveSuite
- Нажмите 🔌 uWave
- Выберите COM-порт (обычно 9600 бод)
- Приложение отправит DINFO запрос и определит устройство
Автоматически после подключения:
- Применяются настройки (каналы TX/RX, солёность, g, командный режим)
- Включается тандемный режим телеметрии (давление, температура, глубина)
- Настройки из DINFO синхронизируются с UI
Для VLBL и географического режима дополнительно подключите GNSS
(кнопка 📡 GNSS).
Настройки устройства
Настройки → 📡 Устройство:
| Параметр |
Описание |
| TX канал |
Канал передачи локального модема |
| RX канал |
Канал приема локального модема |
| Солёность (PSU) |
Для расчета скорости звука |
| g (м/с²) |
Ускорение свободного падения (9.7-9.9) |
| Скорость звука |
Авто (по темп./солёности) или вручную |
| Командный режим |
Работа по протоколу (иначе прозрачный канал) |
Настройки отправляются в модем автоматически при изменении и при подключении.
Настройки → 📡 GNSS-компас:
- Режим компаса: Авто / HDT / Магнитный
- Скорость порта GNSS
Настройки → 📍 Антенна:
- Режим: Декартов (неподвижная) / Географический
- Смещения X, Y и угол φ
- Макс. скорость маяка (для фильтра)
Трекинг
Открыть: Инструменты → Настройка трекинга
Запустить: кнопка ▶ Трекинг в верхней панели
Режимы адресации
📻 CDMA каналы:
- Устройства адресуются по паре кодовых каналов (Tx, Rx)
- Короткие запросы: PING, DPT (глубина), TMP (температура), BAT (напряжение)
- Пользовательские команды: User CMD 0-8
🔢 Логические адреса:
- Устройства адресуются по адресу (0-254)
- 255 — широковещательный (без ответа)
- Работает поверх CDMA каналов
- Короткие запросы через PT ITG (глубина/темп./напряжение)
- Пакетная передача до 64 байт
Режимы команд
- Взвешенный (5:1:1) — глубина опрашивается в 5 раз чаще (для точной проекции дальности), температура и напряжение по 1
- Циклический — равномерное чередование всех команд
- Одиночный — только одна выбранная команда
Параметры опроса
- Интервал между запросами (мс)
- Список устройств для трекинга
Статистика
- Циклов, запросов, успешно, ошибок, таймаутов
- Время работы
USBL
USBL устройство (uWave USBL) определяется по наличию поля azimuth в ответе.
Для расчета позиции используется:
- Азимут — горизонтальный угол до маяка
- Дальность — по времени распространения и скорости звука
- Глубина маяка — для проекции наклонной дальности на горизонталь
Обработка данных
- Вычисление наклонной дальности:
slantRange = propTime × soundSpeed
- Проекция на горизонталь:
sqrt(slantRange² - (depthAnt - depthBeacon)²)
- Поворот и смещение антенны (φ, offsetX, offsetY)
- Фильтр DH — отбрасывание точек с нереальной скоростью
(адаптивные пороги по дистанции: 5 м для <500 м, до 200 м для >3000 м)
- Медианное сглаживание — только для ближней зоны (≤ 1000 м)
Режимы отображения
📐 Декартов (неподвижная антенна):
- X → вправо (East), Y → вперёд (North), Z → вниз
- Антенна в точке (0,0)
🌍 Географический (с GNSS):
- Прямая геодезическая задача (Vincenty)
- Требуется топопривязка + курс
VLBL (дальномерный режим)
Открыть: Инструменты → VLBL
VLBL — надстройка над трекингом для определения координат маяков
по дальностям с разных точек. Требуется GNSS и движение вокруг маяков.
Как работает
- Включите VLBL (тумблер в панели)
- Плавайте вокруг маяков (трекинг должен быть запущен)
- Каждое измерение дальности записывается вместе с координатами антенны
- При накоплении N измерений запускается авторешение
- Решение отображается на карте (квадрат оранжевого цвета)
Настройки
| Параметр |
Описание |
| Решение каждые |
N измерений между авторешениями |
| Мин. интервал |
Минимум мс между решениями |
| Размер базы |
Сколько точек отбирается для решения (3-20) |
| Макс. измерений |
Максимум хранимых измерений на маяк |
| Мин. дистанция |
Мин. дистанция между точками сбора |
Умный отбор баз
VLBLMeasurements выбирает baseSize точек из всех накопленных
так, чтобы максимизировать угловой разброс относительно центроида:
- Находится максимальный угловой разрыв между направлениями на точки
baseSize точек равномерно распределяются по покрытому диапазону
- Это даёт наилучшую геометрию для решения задачи TOA
Качество решения
- Good — угловой разрыв < 140°
- Fair — 140-160°
- Poor — 160-180°
- Out_of_base — ≥ 180° (вне базы)
Решения с HDOP > 50 отбрасываются.
Отличие от USBL
- USBL — есть азимут (требуется uWave USBL)
- VLBL — только дальности (подходит для обычных модемов uWave)
Оба решения могут работать одновременно — их можно сравнить в карточке
устройства и на карте.
Чат
Открыть: 💬 Чат в верхней панели
Чат — единая панель для отправки и приёма сообщений. Заменяет
старую панель “Ручные запросы”.
Входящие сообщения
Чат автоматически показывает входящие:
- ⬇ ASYNC_IN — асинхронные кодовые сообщения (без указания отправителя):
- Код команды (
rcCmdID)
- Уровень сигнала (MSR, dB)
- Азимут (если есть)
- 📦 PT_RCVD — входящие пакеты от других модемов:
- Адрес отправителя
- Азимут (если есть)
- Содержимое пакета (текст)
Индикация непросмотренных:
- Кнопка 💬 Чат в верхней панели показывает бейдж с числом
- При новых входящих кнопка мигает красным
- При открытии панели бейдж сбрасывается
Исходящие сообщения
📻 CDMA — короткий запрос:
- TX канал, RX канал
- Команда: PING, DPT, TMP, BAT, User CMD 0-8
📦 Передача пакета:
- Адрес получателя (0-254, 255 — широковещательный)
- До 64 байт данных
- Количество попыток повтора
🔍 PT_ITG — короткий логический запрос:
- Адрес (0-254)
- Data ID: 0 (глубина), 1 (температура), 2 (напряжение)
Уведомления о доставке пакета
После отправки пакета приходят подтверждения:
- ✓ Packet Delivered — пакет доставлен, показано количество попыток и азимут
- ✗ Packet Failed — пакет не доставлен за указанное число попыток
Фильтры
- Все — все сообщения
- ⬇ Входящие — только входящие
- ⬆ Исходящие — только исходящие
- ASYNC — только ASYNC_IN
- Пакеты — только пакеты (PT_RCVD, PT_DLVRD, PT_FAILED)
Взаимодействие с трекингом
- Трекинг активен → ответы на запросы трекинга не идут в чат
(их слишком много, они видны в консоли и карточках устройств)
- Трекинг неактивен → все ответы на запросы идут в чат
- Асинхронные сообщения и входящие пакеты — идут в чат всегда,
независимо от трекинга
Экспорт
Кнопка 💾 в заголовке чата — экспорт всех сообщений в CSV.
Хранение
Сообщения сохраняются в localStorage (последние 100) и
восстанавливаются при следующем открытии.
POI (Points of Interest)
Открыть: 📍 POI в верхней панели
POI — точки интереса, полезные для исследовательских задач:
- Нанесение предполагаемых мест установки маяков
- Сравнение реальных (VLBL/USBL) и предполагаемых координат
- Оценка точности
- Метки якорных стоянок, точек отбора проб и т.п.
Меню POI
- 📂 Загрузить из CSV — загрузить точки из файла
- 💾 Сохранить в CSV — экспортировать текущие POI
- 🗑 Очистить все — удалить все точки
Формат CSV для загрузки
Поддерживаются разделители: , (запятая), ; (точка с запятой), Tab.
Колонки: Name,Latitude,Longitude,Depth
Пример:
# uWaveSuite POI
Маяк А,55.123456,37.654321,15.0
Маяк Б,55.124567,37.655432,18.5
Точка отбора,55.125000,37.656000,
- Name — имя (обязательно)
- Latitude, Longitude — координаты (обязательно)
- Depth — глубина в метрах (опционально)
Строки, начинающиеся с #, игнорируются (комментарии).
Отметка позиции маяка в POI
В карточке устройства (внизу экрана) есть кнопка 📌 (если у устройства
есть координаты). Нажмите её, чтобы:
- Взять текущие координаты маяка (USBL/VLBL решение)
- Добавить их как POI с автоматическим именем Маяк #N — HH:MM:SS
Это удобно для сравнения: например, загрузили предполагаемые места из CSV,
а потом отметили реальные позиции, полученные VLBL, и наложили на карту.
Отображение на карте
POI отображаются как жёлтые точки:
- Загруженные из CSV — один цвет (настраивается темой)
- Отмеченные вручную — другой цвет
Имя POI отображается рядом с точкой.
Хранение
POI сохраняются в localStorage браузера (uwave_poi_data) и
восстанавливаются при следующем открытии.
При экспорте добавляется служебный заголовок с датой и форматом.
Топопривязка
Открыть: Инструменты → Топопривязка
Задает положение и ориентацию антенны для географического режима:
Источники данных:
- 📱 GPS — координаты с телефона
- 📡 GNSS — внешний приемник (RMC, GGA)
- HDT/HDM/HDG — компас
Карта и треки
Управление
- Колесо мыши — зум
- Drag — перемещение
- Double click — сбросить вид
- Клик по карточке устройства — слежение за маяком
- Клик по карте — отключить слежение
Отображение
- 🔴 Антенна — центр (или географическая позиция)
- 🟢 USBL устройство — есть азимут
- 🔵 Обычный модем — нет азимута
- 🟠 VLBL решение — квадрат с кругом ошибки
- 📐 Треки — линии движения маяков
- 🟡 POI — пользовательские точки
Линейка
📏 Линейка — измерение расстояний:
- Клик 1 — начало
- Клик 2 — конец
- Показывает дистанцию в метрах
Автосброс через 3 секунды после измерения.
Шкала
Графическая шкала в правом нижнем углу, ограничена 200 пикселями.
Экспорт
Открыть: 📤 Экспорт
- 📊 CSV — таблица измерений
- 🗺 KML — для Google Earth (точки + треки)
- 💾 JSON — полные данные (устройства + настройки + треки)
- 📡 NMEA GGA — стандартные предложения GPS
- 📐 DXF — для CAD
Формат CSV:
- Разделитель:
;, , или Tab
- Десятичный:
. или ,
Логирование
Открыть: 📋 Лог
- 💾 Сохранить — сохранить текущий лог в файл
- 📂 Открыть — загрузить лог из файла
- ▶ Воспроизвести — воспроизведение с изменением скорости (1x-8x)
- 🗑 Очистить консоль — очистить вывод
- 👁 Показать/скрыть консоль — вкл/выкл отображение
Логирование ведется автоматически при подключении. Все NMEA
предложения записываются в формате:
[time] UWV << PUWV2,0,0,3∗29
[time] UWV >> PUWV2,0,0,3∗29
[time] UWV >> PUWV0,2,0*36
Горячие клавиши
| Комбинация |
Действие |
| Escape |
Закрыть модальное окно |
| Double click на карте |
Сбросить вид |
| Колесо мыши |
Зум |
| Drag |
Перемещение карты |
Темы оформления
6 тем: Indoor (по умолчанию), Light, Dark Contrast, Jack Black,
Jack White, VAX. Переключение кнопкой 🎨 в верхней панели.
Решение проблем
Модем не отвечает:
- Проверьте COM-порт
- Проверьте питание модема
- Убедитесь что командный режим включен
Трекинг не запускается:
- Проверьте что устройства добавлены в настройках трекинга
- Проверьте что модем подключен
VLBL не решает:
- Проверьте подключение GNSS
- Убедитесь что вы двигаетесь (координаты антенны меняются)
- Проверьте минимум 3-4 измерения с хорошим угловым разбросом
Worker не работает локально:
- Запускайте через HTTP-сервер:
python -m http.server 8080