Перейти к содержимому
Черновик: материал сгенерирован и ещё не вычитан.

Работа в условиях РЭБ и функционал LBS

В зоне действия средств РЭБ спутниковый сигнал искажается тремя способами, и лечится каждый по-своему:

  1. Глушение — координат нет вообще, трек «замирает» в одной точке.
  2. Спуфинг координат — реальный сигнал подменяется более мощным искусственным, трек резко улетает в сторону.
  3. Спуфинг времени — дата и время подменяются прошлым или будущим; сервер мониторинга либо кладёт точки в историю, либо отбрасывает их.

Все настройки собраны в секции ТрекКомпенсация отклонения трека из-за РЭБ.

⚙ Открыть компенсацию РЭБ

Есть два независимых варианта — их можно использовать вместе.

Прибор передаёт в пакете информацию о базовой станции, на которой сейчас зарегистрирована SIM-карта: идентификатор соты, код локальной соты, код страны, код оператора, RSSI. Сервер мониторинга, если в сообщении нет координат, подставляет координаты, привязанные к этой вышке.

Включается отметкой соответствующих тегов в основном пакете секции «Протокол», либо параметром Передача данных по вышкам сотовой связи в протоколе:

ExtMainPackBit 129,1

Ограничения варианта:

  • сервер мониторинга обязан иметь базу сотовых станций всех операторов с привязанными координатами — иначе подставлять будет нечего;
  • точность равна радиусу соты: пока прибор не перейдёт на следующую вышку, координаты не меняются;
  • тег Идентификатор соты (4 байта) (данные для 3G и LTE-станций) доступен с прошивок 48.18 для 7x и 3.18 для 10; парсер протокола на сервере должен его поддерживать — уточните у поставщика ПО мониторинга.

Вариант 2: получать координаты от LBS-сервиса

Заголовок раздела «Вариант 2: получать координаты от LBS-сервиса»

Прибор сам отправляет данные об окружающих сотовых вышках (а на модификациях с Wi-Fi — ещё и о видимых точках доступа) в геолокационный сервис и получает обратно вычисленные координаты, которые подставляет в сообщения. Точность выше, чем в первом варианте, за счёт триангуляции по нескольким вышкам.

Основная команда — LBSCFG.

LBSCFG <режим>,<интервал>,<токен>[,<useWifi>,<wifiMaxRssi>],<host>,<port>

Параметры useWifi и wifiMaxRssi присутствуют только на приборах с Wi-Fi-модулем: без Wi-Fi команда принимает 5 параметров, с Wi-Fi — 7.

ПараметрЗначенияПо умолчанию
Режим LBS0 — выключено, 1 — Yandex.Locator, 2 — EasyLBS, 3 — EasyLBSFeeder0
Интервал запросов при движении (по акселерометру), с10…6553560
Токен доступадо 65 символов
useWifi — включать в запрос данные о Wi-Fi-точках0 / 10
wifiMaxRssi, дБм−100…0
host — адрес LBS-серверадо 64 символов; пусто = адрес по умолчанию для выбранного режимапусто
port — порт LBS-сервера0…65535; 0 = порт по умолчанию (80)0

Пример:

LBSCFG
LBSCFG:OnOff=1,reqInterval=30,apiKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,useWifi=0,wifiMaxRssi=0,host=,port=0;

Изменение относительно старой документации. Старая дока описывает LBSCFG OnOff,reqinterval,apikey,usewifi, где OnOff — это 0/1. В прошивке 48.28 первый параметр — режим из четырёх значений, а в конце команды добавлены host и port для переопределения адреса LBS-сервера (например, при работе через прокси). Команда GSMLOCATION больше не существует — настройка «Определение координат по данным GSM-сети» заменена режимами LBSCFG.

Короткая команда LBS <интервал>,<токен> в прошивке осталась, но она задаёт только интервал и токен и не включает режим. Для включения LBS используйте LBSCFG.

Зарегистрируйтесь в сервисе Yandex Локатор (https://yandex.ru/maps-api/products/locator) и получите токен: бесплатный — до 1000 запросов в сутки, либо платный по объёму автопарка.

Интервал подбирайте под характер эксплуатации: при движении по трассе прибор быстро меняет вышки — разумно запрашивать раз в 60 с; для техники, работающей на ограниченной площадке, хватит 300 с. Каждый запрос — это деньги.

Известная проблема Yandex Локатора: в отдельных регионах координаты Wi-Fi-точек в базе сервиса привязаны неверно, и трек уезжает в сторону. Если так — временно выключите useWifi (или переведите Wi-Fi-модуль в режим «точка доступа» в секции Wi-Fi).

EasyLBS (2) и EasyLBSFeeder (3) работают с сервисом EasyLBS. Адрес и порт при необходимости переопределяются полями host/port — подсекция Адрес сервера LBS.

Для режима EasyLBS на приборах с Bluetooth в запрос можно добавлять данные о видимых BLE-устройствах:

LBSBLE <вкл>,<minRssi>,<maxCount>,<маска1>,…,<маска8>
ПараметрЗначенияПо умолчанию
Добавлять BLE-наблюдения в запрос0 / 10
Минимальный RSSI, дБм−127…0, 0 = без порога0
Максимум устройств в запросе0…32, 0 = значение по умолчанию (7)0
Маски MAC-адресов, до 8 штук12 hex-символов, X — любая тетрада, например 80EAXXXXXXXXпусто

Маски задаются целиком: если указать хотя бы одну позицию маски, весь список заменяется переданным. Ответ команды всегда печатает все слоты масок через ;, включая пустые.

Только при одновременном выполнении двух условий:

  • координат от GNSS-модуля нет (или они признаны невалидными фильтром компенсации спуфинга, см. ниже);
  • прибор в движении по данным акселерометра.

Как только корректные спутниковые данные восстанавливаются, запросы прекращаются.

Чтобы координаты, полученные по LBS, стали источником для трека, в подсекции Источник GNSS значение Источник данных должно быть «Встроенный модуль» (тогда LBS работает как замена при отсутствии координат) либо 6 — LBS (GPSDATASOURCE 6,<таймаут>).

Спуфинг почти всегда сопровождается аномалиями — очень высокой скоростью, большой или отрицательной высотой. Отсекаются они обычным фильтром координат в секции «Трек»: см. «Настройка трека».

Пример набора для грузового транспорта в городе:

GPS.CORRECT 1,200,5,120,10,50,4
GPS.CORRECT3 -30,450,20

Прибор сравнивает текущие координаты от GNSS-модуля с предыдущими (полученными от модуля или по LBS). Если расхождение превышает порог, текущие координаты объявляются невалидными, приоритет отдаётся предыдущим, и уходит запрос в LBS-сервис.

GNSS.FENABLED10 1

Порог задаётся параметром фильтра 100:

GNSS.FPARAM10 100,1000 # 1000 метров вместо 10000 по умолчанию

Предварительно должен быть настроен LBS (см. выше). Минимальное допустимое значение — 500 метров.

Подсекция Синхронизация времени (NTPCONFIG):

NTPCONFIG <вкл>,<период мин>,<сервер1>,<сервер2>,…
  • включение периодической синхронизации по любому доступному каналу в интернет (по умолчанию включено);
  • период 1…1440 минут, по умолчанию 60; отсчитывается от последней успешной синхронизации;
  • серверы перебираются по порядку; пустое поле очищает слот.

Если спуфинг времени случается часто, а связь GSM устойчивая, выключите синхронизацию от спутников и оставьте только сетевую:

TIMESYNCGSM 1
TIMESYNCGNSS 0

TIMESYNCGNSS присутствует в дереве настроек (подсекция «Синхронизация времени»). TIMESYNCGSM в дереве настроек не представлена — выполняйте её во вкладке «Команды».

⚙ Открыть команды

Тот же фильтр GNSS.FENABLED10, что и для координат, сравнивает текущие дату и время от GNSS-модуля с предыдущими. При расхождении больше порога время объявляется невалидным и запускается синхронизация от сервера точного времени.

Порог задаётся параметром фильтра 101:

GNSS.FPARAM10 101,180 # 180 секунд вместо 300 по умолчанию

Минимальное допустимое значение — 30 секунд.

Запрос текущих значений обоих порогов — команда без параметров:

GNSS.FPARAM10
GNSS.FPARAM10: 100,10000.0000,101,300
  1. Убедитесь, что теги базовой станции отмечены в основном пакете и сервер их разбирает.
  2. Выполните LBSCFG без параметров — режим должен быть отличен от 0, токен заполнен.
  3. Выполните GNSS.FPARAM10 без параметров — вернутся действующие пороги.
  4. Проверьте на тестовой поездке в проблемном районе, что трек не «замирает» и не улетает.

См. также: Настройка трека · Передача данных на сервер · Вкладка «Настройки» (конфигурация прибора)