Полевой Компас Связаться →

Система проверяется целиком, а не по отдельным кнопкам

Пакет проходит Android, локальную базу, Bluetooth, прошивку, LoRa и телефон получателя. Испытание считается полезным только тогда, когда проверяет весь нужный путь и поведение при сбое.

Пять уровней проверки одной функции

Например, наличие класса SOS ничего не говорит о доставке. Нужны проверки кодека, очереди, физического радио, применения на втором телефоне и восстановления после обрыва.

Контракт

Формат события, размеры полей, совместимость версий и допустимые состояния.

Компонент

Android, прошивка и PC-инструменты проверяются отдельно на граничных данных.

Связка

Одинаковый пакет кодируется и разбирается всеми участниками системы без расхождения.

Физический путь

Реальные телефоны и ПМ-1 передают событие через Bluetooth и LoRa.

Тысячи автоматических сценариев

Проверяются очереди, миграции базы, кодеки, маршруты, защита, GPS-фильтры, UI-политики и совместимость поколений прошивки.

Единый лимит кадра

Android, прошивка и Windows-инструменты используют один потолок 128 байт. Изменение любого формата сразу проходит budget-тесты.

Версионные профили

Каждое поколение прошивки связано с точным набором возможностей. Неполный или неизвестный профиль отклоняется.

Машиночитаемые результаты

Стендовые сценарии сохраняют версии, идентичности узлов, счётчики, задержки и итоговые verdict.

Радио проверяется на реальном времени E22

Теоретической скорости UART недостаточно. Стенд измеряет момент записи кадра и возврат линии AUX в готовое состояние.

Airtime sweep

Кадры разного размера проходят через обычный защищённый путь. Для каждого размера сравнивается расчётное и измеренное TX-to-ready время.

Selected relay

Проверяются ранги primary, backup и emergency, задержки слотов и отмена передачи после принятого дубликата.

Direct routing

Адресный пакет идёт через известный путь, а при его изменении запускается ограниченный fallback и обновление кэша.

Приоритеты

Телеметрия нагружает очередь одновременно с приказами, подтверждениями и SOS. Важные события должны пройти первыми.

Длинная серия

Стенд отправляет последовательности пакетов, следит за CRC, таймаутами, очередями и восстановлением после потери связи.

Позиционная группа

Три узла выбирают лидера и резерв, передают агрегированное представление группы и перестраиваются при выпадении участника.

Контрольное измерение

На рабочем профиле 9,6 кбит/с 64-байтный кадр занимал около 94 мс до готовности E22, 119-байтный около 152 мс. Эти значения используются планировщиком вместо произвольной задержки.

Android проверяется в условиях реального фонового режима

Первый запуск

Разрешения, включение Bluetooth и геолокации, поиск ПМ-1, привязка и вход в комнату проходят как один пользовательский сценарий.

Разные телефоны

Проверяются отличия BLE-стека, ограничения фоновой работы, повторное подключение и поведение после выключения экрана.

Локальная база

Перезапуск приложения, обновление схемы и аварийное завершение не должны терять комнату, журнал и очередь.

GNSS

Тестируются старые точки, отсутствие accuracy, скачки, круговой переход азимута, PDR и предупреждения о помехах.

Карта

Позиции, объекты, маршруты и зоны проверяются без интернета, включая устаревание и удаление по сроку жизни.

Полевые действия

SOS, смена состояния и критичные подтверждения защищены от случайного касания и сохраняют одинаковые названия по всему потоку.

Сбой является частью сценария

Связь в лесу не бывает идеальной. Поэтому тесты специально создают обрывы, дубликаты и перезапуски.

СитуацияОжидаемое поведениеЧто контролируется
Bluetooth пропалСобытие остаётся в Android-очереди и уходит после подключенияНет потери и двойного применения
Адресат временно недоступенRetry работает в пределах QoS и срока жизни событияОчередь не растёт бесконечно
Пришёл дубликатПакет подтверждается, но событие второй раз не создаётсяУстойчивый event ID и anti-replay
ПМ-1 перезапустилсяПрофиль, комната и допустимое транспортное состояние восстанавливаютсяЦелостность persistent storage
Обновление оборвалосьСессия продолжается либо безопасно отменяетсяАктивный образ остаётся загрузочным
GPS дал скачокКоордината удерживается и не распространяется как реальнаяИстория, движение и точность
Основной relay не ответилПередачу выполняет резервный кандидатЗадержка, отмена и отсутствие relay storm

Нагрузка моделируется до выхода в эфир

Физический стенд нужен для радио, но не обязан вручную перебирать миллионы комбинаций соседей. Для этого используются детерминированные модели.

50-узловая модель selected relay

Симуляция перестраивает локальные списки соседей и измеряет, сколько передач требуется до первого одиночного relay. Это позволяет ловить усиление трафика до прошивки модулей.

Модель очередей

Потоки позиций, приказов и SOS подаются одновременно. Проверяется вытеснение заменяемой телеметрии, retry budget и конечный отказ.

Зачем нужны обе проверки

Модель быстро исследует редкие комбинации, а физический стенд учитывает E22, AUX, реальный Bluetooth, питание и радиоколлизии. Один тип теста не заменяет другой.

Перед выпуском проверяется весь комплект

Android release

Собирается единственный production-вариант, проверяются подпись, shrinker, миграции и запуск на целевых телефонах.

Firmware release

Бинарник связан с моделью, версией, capability profile и подписанным манифестом.

Заводская проверка

TeamCompassFactoryFlasher проверяет плату, E22, защищённое состояние, идентичность и устанавливаемый образ.

Совместный прогон

Android, ПМ-1 и Windows-инструменты проходят одну матрицу совместимости и полный обмен событиями.