Модуль 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. При фильтрации учитываются |
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 устройством