...
Передает найденные СИЗ. См. Коды сенсоров, сенсор SIZ (-20).
Опрос биконов должен быть разрешен Супервизором SUPERVISOR подсистема, параметр /node/mode#Scan=auto. Периодичность опроса задается отдельно в модуле BLE модуль, парсет /ble/brate. Фильтрация биконов /ble/brate#Filter не влияет на опрос СИЗов. Также СИЗ-биконы не учитываются в сенсоре EVT_BEACONS(-19).
СИЗ-бикон появляется в сенсоре после первого же обнаружения сканированием. СИЗ-бикон пропадает в сенсоре, только если не обнаружен в 4 сканированиях подряд.
Конфигурация модуля
/siz/siz
...
Параметр | Значения | CBOR map value type | Описание |
Mode | off, on | bool | Режим опроса СИЗ. Сенсор SIZ (при Send=Auto) отправляется, если Mode=on и /siz/bmap не пустой |
BatLevel_mv | uint32 | int | Порог недостатка напряжения питания бикона, мВ (для передачи состояния батареи в сенсоре SIZ) |
...
PUT /siz/bmap clear – удаление всех записей
Bulk-конфигурация
Возможно чтение (GET) и загрузка (PUT) парсета целиком в виде бинарного образа. Для парсет-массивов образ содержит только непустые записи (строки массива).
Надо опрашивать соответствующий ресурс с Query Option blob. Образ передается в payload CoAP-пакета.
Образ содержит заголовок и данные. В заголовке содержатся идентификатор структуры парсета FieldsSignature и контрольная сумма CRC32. Расчет контрольной суммы см. TAGZONES subsystem (в конце)
FieldsSignature нужен для контроля правильности структуры парсета.
CRC32 нужна для контроля целостности образа при CoAP Block Transfer. Образ собирается в устройстве по мере прихода блоков и в конце применяется целиком с контролем целостности. Для сбора образа используется глобальный буфер, так что образ может быть искажен при параллельном доступе с нескольких клиентов.
Для парсета /siz/bmap образ имеет следующий вид (siz_bmap_blob_t):
| Code Block |
|---|
typedef struct __attribute__((packed)) {
uint32_t FieldsSignature; /// for /siz/bmap must be 0xFD00E35D
uint32_t CRC32; /// cyg_ether_crc32() of following bytes
} parset_blob_header_t;
typedef struct __attribute__((packed)) {
uint8_t idx; /// index in array, equals to SIZ type
uint8_t MAC[6]; /// beacon BLE device address, MSB first
uint8_t Att_dB; /// max allowable BLE signal attenuation from beacon
} siz_bmap_record_t;
typedef struct __attribute__((packed)) {
parset_blob_header_t header;
siz_bmap_record_t records[N]; /// 0 <= N <=31
} siz_bmap_blob_t;
|
Примеры использования через CoBench (file_name можно оставлять пустым, будет запрошено через GUI):
GET /siz/bmap blob – запрос образа парсета, печать в HEX
GET /siz/bmap blob#>file_name – запрос образа парсета, сохранение в file_name
GET /siz/bmap blob#<file_name – запрос образа парсета, сравнение с file_name
PUT /siz/bmap blob#<file_name – передача образа парсета из file_name
PUT /siz/bmap blob#<<file_name – передача образа парсета из file_name с пересчетом CRC32
Для очистки конфигурации можно загрузить образ со всеми пустыми записями, но проще отправить PUT /siz/bmap clear