Покрытие
Страница «Покрытие» веб-интерфейса ONS показывает на карте расчётное радиопокрытие шлюзов, сами шлюзы и, по запросу, устройства выбранных приложений. По ней видно, какую территорию по расчёту покрывает сеть и какие шлюзы давно не выходили на связь. Покрытие рассчитывает внешний сервис CloudRF по местоположению, высоте и антенне каждого шлюза.
Шлюзы объединяются в сети покрытия: сеть выбирают в карточке шлюза, в поле «Покрытие». Для каждой сети рассчитывается одно общее изображение покрытия — его и показывает карта.
Что показывает карта покрытия
Страница открывается пунктом меню «Покрытие» — он стоит между «Биллинг» и «Шлюзы» и виден всем пользователям, вошедшим в систему. Сети и шлюзы на ней загружаются, только если у пользователя есть право на просмотр сетей покрытия; без него карта пуста. С этим правом на карте видны сети покрытия и их шлюзы в видимой области. Вся страница — одна карта.
| На карте | Что это |
|---|---|
| Изображение покрытия | Расчётное покрытие сети целиком, полупрозрачное (непрозрачность 0,7) |
| Шлюзы | Кружки; цвет показывает, когда шлюз последний раз выходил на связь |
| Устройства | Метки устройств выбранных приложений — появляются, только если их запросить |
| Профиль пути | График трассы между выбранным шлюзом и точкой на карте — строится по запросу |
Как карта загружает данные:
- Данные запрашиваются только для видимой области. При перемещении или изменении масштаба карта сразу отменяет незавершённый запрос, а новый отправляет, когда карта 1 секунду остаётся неподвижной. Пока идёт загрузка, значок кнопки «Обновить» вращается.
- Сервер возвращает сети покрытия, у которых в видимой области есть хотя бы один шлюз, который не удалён и не отключён. Сети приходят по 50 на страницу, а карта читает только первую страницу — за один запрос не больше 50 сетей.
- Сеть, которая уже есть на карте, при следующих запросах не обновляется: новые данные по ней отбрасываются. Шлюзы такой сети, которые при её первой загрузке были вне видимой области, после перемещения карты не появятся. Добавляются только сети, которых на карте ещё не было. Чтобы загрузить всё заново, нажмите «Обновить».
- Карта открывается в масштабе 12 (доступны масштабы 1–18) с центром в точке
43.24209, 76.87743. Браузер запоминает последний центр, масштаб и подложку (localStorage, ключиrestoreCoordsиbaseLayer) и при следующем открытии восстанавливает их.
Слои и элементы управления
Переключатель слоёв содержит три подложки — Open Street Map, Google Map и Satellite — и два наложения: Coverage (изображения покрытия) и Node (метки устройств). Метки шлюзов лежат в отдельном слое, которого нет в переключателе, поэтому шлюзы видны всегда. Ещё на карте есть масштабная линейка.
| Элемент | Где | Что делает |
|---|---|---|
| Кнопки масштаба и линейка расстояний | Справа вверху | Меняют масштаб; линейка измеряет расстояние по ломаной на карте |
| Легенда | Справа вверху | Шкала в dBm: оттенки зелёного от −80 до −100 dBm с шагом 5 dBm |
| Значок кубиков («Показать узлы») | Справа вверху | Открывает панель устройств — см. раздел «Устройства на карте» |
| Форма перехода: «Широта», «Долгота», «Перейти», «Очистить» | Слева вверху | Щелчок по карте заполняет форму координатами точки. «Перейти» ставит в точке маленькую красную метку и жёлтый круг радиусом 2500 м и переносит туда карту. «Очистить» — кнопка со значком переработки (подпись видна при наведении) — убирает эти метки и метки профиля пути |
| «Обновить» | Слева вверху | Перестраивает карту в текущем центре и масштабе: сбрасывает загруженные сети и выбранный шлюз и загружает данные заново |
| «Анализ профиля пути» и поле «Высота приемника, м» | Слева вверху | Строят профиль пути — см. раздел «Анализ профиля пути» |
| Координаты курсора | Слева внизу | Показывают координаты точки под курсором в виде lat: … lng: … |
Легенда — неизменная картинка. Она нарисована для цветовой схемы LORA100.dBm, которая задана в параметрах расчёта по умолчанию (параметр col, см. раздел «Как строится покрытие»).
Подложка карты на снимках этой страницы — © участники OpenStreetMap.
- Форма перехода — поля «Широта» и «Долгота», кнопки «Перейти» и «Очистить» (значок переработки).
- «Анализ профиля пути» и поле «Высота приемника, м» — по умолчанию 5.
- «Обновить» — перестраивает карту и загружает данные заново.
- Переключатель слоёв — подложки Open Street Map, Google Map, Satellite и наложения Coverage и Node; раскрывается при наведении на значок слоёв.
- Кнопки масштаба и линейка расстояний.
- Легенда — шкала в dBm от −80 до −100 dBm.
- Значок кубиков («Показать узлы») — открывает панель устройств.
- Координаты курсора —
lat: … lng: ….
Шлюзы на карте: цвета, подсказки, группировка
Каждый шлюз — кружок. Цвет зависит от того, когда шлюз последний раз выходил на связь:
| Цвет | Последний выход на связь |
|---|---|
| Синий | Меньше 1 часа назад |
| Оранжевый | От 1 до 3 часов назад |
| Красный | 3 часа назад и раньше |
| Серый | Ни разу |
Шлюз с отметкой «Только планирование» обведён толстой жёлтой рамкой. Выбранный шлюз подсвечен зелёным ореолом.
Щелчок по шлюзу выбирает его и переносит центр карты на него. Во всплывающем окне:
- «Шлюз:» и название шлюза;
- красная строка «Только планирование» — если у шлюза есть эта отметка;
- EUI;
- «Высота», м;
- «Количество данных в час» — на этой карте это число записей данных шлюза за последние 24 часа без учёта downlink, а не за час. Одноимённое свойство шлюза за пределами этой карты считается за 1 час;
- «Описание»;
- «Последнее событие» — дата и время в формате
YYYY-MM-DD HH:mm; значение подсвечено светло-жёлтым, если с последнего выхода на связь прошло от 1 до 3 часов, и светло-красным — если 3 часа и больше (цвет определяется в момент загрузки шлюза на карту).
На снимке наложение Coverage выключено, чтобы были лучше видны цвета шлюзов.
- Синий шлюз — выходил на связь меньше 1 часа назад.
- Выбранный шлюз — подсвечен зелёным ореолом. Он оранжевый: выходил на связь от 1 до 3 часов назад.
- Красный шлюз — выходил на связь 3 часа назад и раньше.
- «Только планирование» — серый кружок (шлюз ни разу не выходил на связь) с толстой жёлтой рамкой.
- «Шлюз:» и название шлюза — заголовок всплывающего окна.
- «Количество данных в час» — на этой карте число записей данных шлюза за последние 24 часа.
- «Последнее событие» — подсвечено светло-жёлтым: с последнего выхода на связь прошло от 1 до 3 часов.
Пока масштаб меньше 12, близкие шлюзы объединяются в группы; с масштаба 12 каждый шлюз виден отдельно. Если в видимой области не больше одной сети с рассчитанным изображением покрытия и шлюзами, группировка отключается. При наведении на группу появляется сводка по её шлюзам: «Всего», «Активные», «Нет связи более часа», «Нет связи более 3 часов», «Неактивные», «Только планирование». Шлюз с отметкой «Только планирование» всегда попадает в строку «Только планирование».
Как строится покрытие
Покрытие рассчитывает внешний сервис CloudRF (https://api.cloudrf.com). ONS выполняет два вида расчёта:
| Расчёт | Запрос к CloudRF | Результат | Где виден |
|---|---|---|---|
| По шлюзу | /area | Изображение покрытия шлюза и его границы | Изображение — на карте в поле «Местоположение» карточки шлюза; статус — в списке шлюзов и на этой карте; на карте «Покрытие» изображение не показывается |
| По сети покрытия | /multisite | Одно изображение PNG в проекции Меркатора на всю сеть и его границы | На карте «Покрытие» |
Из карточки шлюза в расчёт идут:
| Поле карточки шлюза | Что даёт расчёту |
|---|---|
| «Местоположение» | Широта и долгота шлюза |
| «Высота» | Высота шлюза, м; целое число. В форме добавления шлюза поле заполнено нулём; шлюз с высотой 0 в расчёт сети не попадает — укажите реальную высоту |
| «Антенна» | Антенна из каталога антенн с её параметрами для CloudRF. В карточке шлюза показываются диаграммы направленности антенны в горизонтальной и вертикальной плоскостях |
| «Азимут антенны» | Направление антенны в градусах от северного направления координатной сетки (grid north); форма принимает значения 0–360 |
| «Наклон антенны» | Наклон антенны в градусах от горизонта; форма принимает значения от −360 до 360 |
| «Покрытие» | Сеть покрытия, в расчёт которой входит шлюз |
| «Отключен», «Внутренний шлюз», «Только планирование» | Определяют, попадёт ли шлюз в расчёт, — см. раздел «Какие шлюзы попадают в расчёт» |
Остальные параметры расчёта хранятся у каждой сети покрытия в поле cloudrf_payload (JSON) и редактируются в панели администрирования сервера редактором JSON. В веб-интерфейсе окно «Добавить покрытие» в карточке шлюза спрашивает только название новой сети. Новая сеть получает значения по умолчанию:
| Группа | Значения по умолчанию |
|---|---|
| (верхний уровень) | engine: 2 |
transmitter (передатчик) | frq: 868, txw: 0.025, bwi: 0.125 |
receiver (приёмник) | alt: 2, rxg: 2, rxs: -90 |
antenna (антенна) | txg: 2.15, txl: 0, ant: 1, hbw: 360, vbw: 90, fbr: 0, pol: v |
model (модель) | pm: 1, pe: 2, ked: 1, rel: 50 |
environment (окружение) | clt: Minimal.clt, elevation: 2, landcover: 1, buildings: 0, obstacles: 0 |
output (результат) | units: m, col: LORA100.dBm, out: 2, nf: -120, res: 4, rad: 10 |
В таблице нет служебных полей site и network и координат lat, lon. Для каждого шлюза ONS подставляет в transmitter координаты и высоту шлюза (lat, lon, alt), а в antenna — параметры антенны из каталога, азимут (azi) и наклон (tlt). Смысл и единицы параметров — как в API CloudRF. У действующих сетей значения могут отличаться от значений по умолчанию.
Какие шлюзы попадают в расчёт
В расчёт сети покрытия не попадает шлюз, если он:
- удалён;
- отключён — отметка «Отключен»;
- не на связи — последний раз выходил на связь больше 24 часов назад и не отмечен «Только планирование»;
- внутренний — отметка «Внутренний шлюз»;
- имеет высоту 0 м или меньше;
- не имеет местоположения;
- не имеет антенны.
Шлюз с отметкой «Только планирование» никогда не считается не вышедшим на связь; остальные условия к нему применяются как обычно. Если подходящих шлюзов не осталось, расчёт сети пропускается: статус становится «Покрытие готово», а в сообщении статуса записывается All gateways is offline, disabled or indoor. Skipe coverage creation.
Расчёт по отдельному шлюзу пропускается для внутреннего шлюза, шлюза без антенны и шлюза без местоположения.
Поле «Покрытие» в карточке шлюза необязательное. Но шлюз без сети покрытия карта не получает: его нет на карте, и он не входит ни в один расчёт сети.
Когда покрытие пересчитывается и как узнать статус
Расчёт всегда идёт фоновой задачей сервера: результат появляется после того, как задача выполнится.
| Событие | Что пересчитывается |
|---|---|
| Сохранение шлюза — если шлюз выходил на связь за последние 24 часа или отмечен «Только планирование», не удалён и не отключён | Покрытие шлюза и его сети |
| Сохранение сети покрытия | Покрытие всех подходящих шлюзов сети и изображение сети |
| Групповое действие «Обновить покрытие» в списке шлюзов | Покрытие выбранных шлюзов и их сетей |
Действие «Обновить покрытие» видят пользователи, которым разрешено добавлять шлюзы.
Статус расчёта показывает метка с глобусом:
- в списке шлюзов рядом с названием шлюза — статус расчёта этого шлюза;
- в списке шлюзов рядом с названием сети в колонке «Сеть покрытия» — статус расчёта сети;
- в карточке шлюза — на карте в поле «Местоположение», под кнопками метки.
| Код | Метка | Вид |
|---|---|---|
| 0 | «Покрытие генерируется» | Жёлтая, с индикатором загрузки |
| 1 | «Покрытие не сгенерировано» | Красная |
| 2 | «Покрытие готово» | Зелёная |
«Покрытие готово» не всегда значит, что изображение построено. Статус 2 ставится и тогда, когда расчёт пропущен: для шлюза — внутреннего, без антенны или без местоположения; для сети — когда в ней не осталось ни одного подходящего шлюза. Ошибка CloudRF при расчёте сети даёт статус 1. Если сервис ответит ошибкой при расчёте отдельного шлюза, метка шлюза может так и остаться «Покрытие генерируется».
Анализ профиля пути
Профиль пути — график, который CloudRF строит для трассы между шлюзом и выбранной точкой (запрос /path). Передатчик — шлюз с его местоположением, высотой, антенной, азимутом и наклоном; приёмник — выбранная точка на заданной высоте.
- Щёлкните по шлюзу на карте — он станет выбранным.
- При необходимости измените высоту приёмника в поле «Высота приемника, м» — по умолчанию 5.
- Нажмите «Анализ профиля пути» — кнопка станет зелёной.
- Щёлкните по точке на карте или введите её координаты в форму перехода и нажмите «Перейти».
График появится во всплывающем окне в выбранной точке, сама точка отмечается оранжевой меткой. После каждого анализа режим выключается: для следующей точки снова нажмите «Анализ профиля пути». Если шлюз не выбран, при выборе точки появится ошибка «Сначала выберите шлюз».
Веб-интерфейс получает профиль запросом GET /api/v1/path_profile:
| Параметр | Описание |
|---|---|
gateway | Обязательно. EUI шлюза, 16 hex-символов |
to_lat | Обязательно. Широта точки |
to_lon | Обязательно. Долгота точки |
rxh | Высота приёмника, м |
Нужно право на просмотр шлюзов; без него сервер ответит 403 You do not have permission to perform this action.. Кроме того, у пользователя должен быть доступ к этому шлюзу — право на просмотр или владение, иначе 403 Not found.. Удалённый или несуществующий шлюз — 404 Not found.. Результат — изображение PNG в кодировке base64.
Устройства на карте
Устройства (в интерфейсе — «узлы») показываются по запросу:
- Нажмите значок кубиков справа вверху («Показать узлы»).
- Отметьте приложения. В списке — активные приложения, доступные пользователю (свои и с правом просмотра), по алфавиту; отметка «Приложения» выбирает все.
- Нажмите «Показать узлы».
Карта запрашивает координаты устройств выбранных приложений и ставит метки тех, у кого координаты заданы. Сервер возвращает только активные устройства, которые пользователь может видеть: DevEUI, описание, время последнего сообщения, время последнего подключения к сети (join) и координаты.
Цвет метки зависит от времени последнего сообщения:
| Цвет | Последнее сообщение | Подпись в легенде |
|---|---|---|
| Зелёный | Не больше 24 часов назад | «Активные за сегодня» |
| Жёлтый | Больше 24, но не больше 48 часов назад | «Нет связи более 24 часов» |
| Оранжевый | Больше 48 часов назад | «Нет связи более 48 часов» |
| Красный | Ни разу | «Не было связи» |
Легенда под заголовком «Узлы» показывает число устройств каждого цвета, подпись видна при наведении. Учитываются только устройства с координатами. Во всплывающем окне устройства — «Узел:» и DevEUI устройства, «Последнее соединение» (последнее подключение к сети) и «Последнее сообщение»; строка «Последнее сообщение» окрашена в цвет метки.
Вокруг каждого устройства рисуется круг радиусом 50 м. После первой загрузки появляется блок «Настройки» с ползунками «Радиус» (50–500 м, шаг 50 м) и «Прозрачность» (0–1, шаг 0,1, по умолчанию 0,3).
На снимке наложение Coverage выключено, чтобы были лучше видны метки устройств.
- «Приложения» — список приложений; отметка «Приложения» выбирает все.
- «Показать узлы» — ставит на карту метки устройств отмеченных приложений.
- «Настройки» — ползунки «Прозрачность» и «Радиус».
- Легенда «Узлы» — число устройств каждого цвета: зелёный, жёлтый, оранжевый, красный.
- Метка устройства и круг радиусом 50 м вокруг неё. Зелёная метка — последнее сообщение не больше 24 часов назад.
- «Последнее сообщение» — строка окрашена в цвет метки; оранжевый — последнее сообщение больше 48 часов назад.
Каждая загрузка добавляет устройства к уже показанным, без повторов по DevEUI. Чтобы начать заново, нажмите «Обновить». В панели не больше 50 приложений: она читает только первую страницу списка.
Координаты устройства задаются командой WebSocket API set_device_coordinates_req: сервер записывает их в то же поле настроек устройства, из которого их берёт карта.
Почему покрытия или шлюза нет на карте
| Что видно | Причина | Что сделать |
|---|---|---|
| Шлюза нет на карте | У шлюза не выбрана сеть покрытия | Выберите сеть в поле «Покрытие» в карточке шлюза |
| Шлюза нет на карте | Шлюз отключён или удалён | Ничего: отключённые и удалённые шлюзы на карту не попадают |
| Шлюза нет на карте | У шлюза не задано «Местоположение»: карта ищет шлюзы по координатам в видимой области | Задайте местоположение в карточке шлюза |
| Шлюза нет на карте | Его сеть загрузилась раньше, когда шлюз был вне видимой области; уже загруженная сеть не обновляется | Нажмите «Обновить» |
| На карте нет ни сетей, ни шлюзов | Нет права на просмотр сетей покрытия | Попросите администратора выдать право просмотра сетей покрытия |
| Часть сетей не появилась | В видимой области больше 50 сетей, а карта читает только первые 50 | Увеличьте масштаб |
| Шлюзы есть, изображения покрытия нет | Расчёт сети ещё идёт, завершился ошибкой или пропущен | Посмотрите статус сети в списке шлюзов, колонка «Сеть покрытия»; проверьте условия раздела «Какие шлюзы попадают в расчёт»; запустите «Обновить покрытие» |
| Изображения покрытия нет ни у одной сети | Выключено наложение Coverage в переключателе слоёв | Включите наложение Coverage |
| После изменений карта показывает старые данные | Уже загруженные сети не заменяются новыми данными | Нажмите «Обновить» |
| Устройства нет на карте | У устройства не заданы координаты, устройство неактивно или его приложение не попало в первые 50 | Задайте координаты командой set_device_coordinates_req |
См. также
- Задать координаты устройства — как сохранить координаты, по которым устройство появится на карте.
- Получить координаты устройства — как прочитать сохранённые координаты.
- Введение — что такое Orion Network Server.