Модуль BLE обеспечивает сбор данных с BLE-биконов.
Производится периодическое сканирование BLE-биконов. Обнаруженные биконы сортируются по уровню сигнала (RSSI) и отправляются в сенсорах на Сервер; отправляются не все биконы, а только первые N. N зависит от транспорта и задается в /ble
/brate#UwbSend, /ble/brate#LoraSend.
При сканировании возможна фильтрация биконов по UID, чтобы передавать на Сервер только известные биконы. Они должны быть предварительно сконфигурированы – задан этот UID.
Конфигурация модуля:
/ble/brate
Парсет, настраивает параметры сбора BLE-биконов:

Параметр

Значения

Описание

Window_s

0..10

Длительность одного сканирования BLE-биконов

Period_s

0..1000

Период сканирований. Если задан не больше Window_s, то сканирования идут с интервалом 1с

Filter

on, off

Включает фильтрацию биконов

UwbSend

uint

Максимальное количество биконов, передаваемых по каналу UWB.

LoraSend

uint

Максимальное количество биконов, передаваемых по каналу LoRa

MacReverse

on, off

Инвертирует порядок байтов MAC-адресов биконов при отправке в сенсорах. Отладочный параметр, не включать.


/ble/bfilter
Парсет-массив, настраивает фильтрацию BLE-биконов. Содержит 4 записи. При сканировании регистрируются только биконы с UID, совпадающим с одной из записей (при /ble/brate#Filter=on).

Параметр

Значения

Описание

UID

eui128

UID BLE-бикона, MSB-first. При фильтрации учитываются

все 16 байт для iBeacon (сравниваются с Proximity UUID)
все 16 байт для AltBeacon (сравниваются с первыми 16 байтами BEACON ID) только первые 10 байт для Eddystone (сравниваются с Namespace ID)

Type

Eddystone, iBeacon, AltBeacon

Тип BLE-бикона.


Параметр UID вводится в виде 12-34-56-AB-1-3-… , можно вводить только первые байты, тогда остальные будут 0.
Примеры использования:(через CoBench):
PUT /ble/bfilter 0#UID=50-45-54-52-4F-46-41-43-20-20 Type=Eddystone - добавление/изменение записи 0 PUT /ble/bfilter 1#UID=EB-EF-D0-83-70-A2-47-C8-98-37-E7-B5-63-4D-F5-24 Type=iBeacon - и записи 1 GET /ble/bfilter 2 - просмотр текущих значений записи 2
PUT /ble/bfilter 2 del - удаление записи 2
PUT /ble/bfilter clear - удаление всех записей
/ble/bsens (экспериментальный)
Парсет, настраивает соединение с BLE устройством, транслирующим данные с собственных датчиков:

Параметр

Значения

Описание

Use

on, off

Разрешение соединения с BLE устройством

Pub

on, off

Тип MAC-адреса BLE устройства - Public (on) или Random (off)

Adr

eui48

MAC-адрес BLE устройства

После разрешения соединения с BLE устройством (/ble/bsens#Use=On) само соединение производится при обнаружении BLE устройства в ходе периодического сканирования BLE-биконов. Поэтому сканирование должно быть включено, и поиск устройства будет производиться с соответствующими паузами. При разрыве соединения поиск BLE устройства возобновляется.
При любом изменении параметров парсета соединение с BLE устройством сразу прерывается и, в зависимости от новых параметров, поиск BLE устройства запускается заново.
Данные разных датчиков, принятые с BLE устройства, передаются в разных каналах сенсора BLE_SENSOR, код сенсора 7 (см. SENS модуль). В настоящее время реализован только один канал Пульс (HeartRate, код канала 1). Пример передачи (в CoBench):
S G+23 v1{i -4:1 -1:3 -14:0 -6:23 7:{1 1:67} -10:[2 -1694 23] -16:1}
Передача каждого канала BLE_SENSOR может быть включена или выключена. В режиме Send=Auto (/sens ble_hr#Send=Auto) канал передается только при /ble/bsens#Use=On.
Коды ошибок каналов BLE_SENSOR:
-1 : есть соединение с BLE устройством, но данные не приходят
-2 : нет соединения с BLE устройством

  • No labels