Модуль SENS обеспечивает передачу данных с сенсоров метки параллельно с позиционированием. Данные передаются малыми порциями в пакетах позиционирования.

Каждое устройство имеет свой набор сенсоров, определяемый конкретной версией встроенного ПО. В зависимости от конфигурации модуля SENS передаются только выбранные сенсоры. Если все сенсоры не влезают в радиопакет, то оставшиеся передаются в следующем радиопакете, и так по кругу.

Сенсоры передаются в виде код:значение. Коды сенсоров уникальны в рамках системы позиционирования (допустимы отрицательные коды). Значением сенсора может быть одно число, или массив чисел, или список вида идентификатор:значение ; здесь идентификатором могут быть номера каналов сенсора или индексы полей для сложных сенсоров. Типичное строковое представление (в Списке меток CoBench, см. https://rtlsnet.jira.com/wiki/spaces/TADOC/pages/2399535459#%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%BF%D0%BE%D0%BB%D1%8F-Sensors) блока сенсоров в радиопакете:

v1{i -4:0 -1:1 -14:0 -10:[2 -2318 28] -13:{3 3:0 4:0 6:0} -6:39 2:{2 1:-2 2:-2} 6:{2 1:0 2:0}}

Здесь v1 обозначает версию набора кодов сенсоров. В настоящее время есть только версия 1.

Описание значений и поведения разных сенсоров см. Коды сенсоров

Существует два типа сенсоров – сенсор состояния и сенсор события. Для каждого кода сенсора известен его тип.

Сенсор состояния (StateSensor)

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

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

Сенсор события (EventSensor)

Передает информацию о каком-либо событии. Например, нажатие кнопки или завершение замера GNSS. Такая информация обязательно сопровождается временем события в виде количества секунд от момента события до момента отправки радиопакета (PassTime), что позволяет восстановить абсолютное время события после приема пакета (с некоторой приемлемой точностью). Кроме PassTime передаются также код события или значения каких-либо параметров, измеренных в момент события.

Такие сенсоры конфигурируются по умолчанию на автоматическую отправку: /sens <name>#Send=Auto. В такой конфигурации они передаются несколько раз (для надежности) после возникновения соответствующего события, затем передача сенсора прекращается до следующего события. Количество раз свое у каждого сенсора.

Конфигурация модуля

/sens

Парсет-массив, задает режим отправки для каждого сенсора. Содержит записи для всех сенсоров, отдельно для каждого канала многоканальных сенсоров. Ключом для идентификации записи является имя сенсора.

Параметр

Значения

Описание

i

text string

Описание сенсора. Неизменяемый параметр (read only)

Send

Off,
Auto,
Normal,
Urgent

Режим отправки сенсора:

  • Off – не отправлять

  • Auto – отправлять по мере необходимости

  • Normal – отправлять постоянно

  • Urgent – отправлять постоянно

  • с повышенным приоритетом

В режиме отправки Send=Auto решение об отправке принимается автоматически с учетом условий, специфичных для каждого сенсора.

Примеры (через CoBench ):

Запрос

Ответ

GET /sens

# i=Power        a  -1:    Send=Auto
# i=bar          a -10:    Send=Auto
# i=Motions      a -15:    Send=Auto
# i=Orientation    -16:    Send=Normal
# i=gnss         a -18:    Send=Auto
# i=Beacons      a -19:    Send=Auto

Список всех сенсоров в устройстве и их текущий режим отправки

GET /sens bar

# i=bara -10:Send=Auto

Состояние сенсора bar (код -10)

PUT /sens bar#Send=Off

2.04(Changed): Changed

Изменение режима отправки сенсора bar

GET /sens bar

# i=bar a -10: Send=Off

PUT /sens bar def

2.04(Changed): Changed

Сброс режима отправки сенсора bar в исходное состояние

GET /sens bar

# i=bar a -10: Send=Auto

PUT /sens clear

2.04(Changed): Changed

Сброс режима отправки всех сенсоров в исходное состояние

Опрос сенсоров

/sens/poll

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

Метка отправляет сенсоры в блинках, но сенсоры анкера (в режимах анкера) можно получить только этим опросом.

Запрос

Ответ

GET /sens/poll

v1{i -1:0 -10:-200002 -17:0 -2:0 -3:1 -6:43 -7:4939 -8:52233 -9:3}

Текущие значения всех сенсоров в устройстве