Модуль SENS обеспечивает передачу данных с сенсоров метки параллельно с позиционированием. Данные передаются малыми порциями в пакетах позиционирования UWB, в аплинках LoRa, в пакетах LTE.
Каждое устройство имеет свой набор сенсоров, определяемый конкретной версией встроенного ПО. В зависимости от конфигурации модуля SENS передаются только выбранные сенсоры. Если все сенсоры не влезают в радиопакет, то оставшиеся передаются в следующем радиопакете, и так по кругу. С версии 3.18.0 сенсор GNSS_BULK(-25) вкладывается в пакет специальным образом, см. ниже /sens/fill
Сенсоры передаются в виде код:значение. Коды сенсоров уникальны в рамках системы позиционирования (допустимы отрицательные коды). Значением сенсора может быть одно число, или массив чисел, или список вида идентификатор:значение ; здесь идентификатором могут быть номера каналов сенсора или индексы полей для сложных сенсоров. Типичное строковое представление блока сенсоров в радиопакете (в Списке меток CoBench, см. Список меток – Формат поля Sensors):
...
Seq это последовательный номер данного события (циклический в диапазоне -24..23). Применяется для различения разных событий.
fw версии до 2.3.0 передает только SensorsIdSet 1
fw версии c 2.3.0 имеет параметр для переключения SensorsIdSet : /node/ctl#SensVer =1.2 (по умолчанию 2)
Конфигурация модуля
/sens
Парсет-массив, задает режим отправки для каждого сенсора. Содержит записи для всех сенсоров, отдельно для каждого канала многоканальных сенсоров. Ключом для идентификации записи является имя сенсора.
...
Метка отправляет сенсоры в блинках, но сенсоры анкера (в режимах анкера) можно получить только этим опросом.
Запрос | Ответ | |||
|
| Текущие значения всех сенсоров в устройстве |
версия > 3.7.0 : В параметрах запроса (QueryOptions) можно указать список запрашиваемых сенсоров – имена или коды сенсоров:
| Code Block |
|---|
GET sens/poll chg uin -11
v2{i -2:0 -8:3944 -11:{4 1:0 2:25 3:1 4:1}} |
Заполнение радиопакета
версия >= 3.18.0
/sens/fill
Параметры заполнения радиопакета сенсорами. Присутствует только в устройствах, поддерживающих сенсор GNSS_BULK(-25).
Параметр | Значения | Описание |
PreBulk | uint | Фиксированное количество сенсоров в радиопакете перед сенсором GNSS_BULK(-25) (подробности ниже) |
Все сенсоры укладываются в радиопакет один за другим по кругу; если не влезли, то оставшиеся в следующем радиопакете.
Однако, сенсор GNSS_BULK(-25) укладывается специальным образом. Сенсор GNSS_BULK содержит замеры GNSS от предыдущего до текущего радиопакета. Если замеров много, они прореживаются, чтобы влезть в радиопакет и по возможности равномерно распределиться по времени между радиопакетами. Поэтому этот сенсор может содержать много данных и занимать весь доступный объем пакета. Чтобы он, с одной стороны, не вытеснял постоянно другие сенсоры, и, с другой стороны, сам не укорачивался другими сенсорами, его положение в пакете фиксируется параметром /sens/fill#PreBulk : сначала в пакет укладываются очередные другие сенсоры в количестве PreBulk, затем укладывается сенсор GNSS_BULK, подстраиваясь под всё оставшееся место, затем, если осталось место, укладываются очередные другие сенсоры.
Таким образом, сенсор GNSS_BULK передается в радиопакетах приоритетно и относительно равномерно, а остальные сенсоры по мере возможности. Чтобы они совсем не пропадали, для них отводится фиксированное минимальное место в количестве PreBulk штук.