Espruino:Справочник по API/Класс NRF/findDevices()
Функция NRF.findDevices()[1]
Синтаксис
NRF.findDevices(callback, options)
Параметры
- callback – функция, которая будет вызвана с получением пакетов объявлений (в виде объектов BluetoothDevice), или undefined, чтобы прекратить сканирование.
- options – время сканирования в миллисекундах (по умолчанию – 2000) или опциональный объект в формате {filters: ..., timeout : ..., active: bool} (такой передается функции NRF.requestDevice()) для фильтрации устройств.
Возвращаемое значение
Описание
Это вспомогательная функция, возвращающая список BLE-устройств, обнаруженных в диапазоне сканирования. Эта функция неявно использует NRF.setScan() и сопоставляет результаты.
Например, если написать следующее...
NRF.findDevices(function(devices) {
console.log(devices);
}, 1000);
...то в консоли будет напечатано следующее:
[
BluetoothDevice {
"id": "e7:e0:57:ad:36:a2 random",
"rssi": -45,
"services": [ "4567" ],
"serviceData" : { "0123" : [ 1 ] },
"manufacturerData" : [...],
"data": new ArrayBuffer([ ... ]),
"name": "Puck.js 36a2"
},
BluetoothDevice {
"id": "c0:52:3f:50:42:c9 random",
"rssi": -65,
"data": new ArrayBuffer([ ... ]),
"name": "Puck.js 8f57"
}
]
Более подробно о структуре возвращаемых данных читайте в описании функции NRF.setScan().
Если вам нужно просканировать какие-то специфические устройства, то таймаут можно заменить на объект в формате {filters: ..., timeout : ..., active: bool} при помощи фильтров, о которых рассказывается в описании функции NRF.requestDevice(). Например, для поиска Espruino-устройств по manufacturerData напишите следующее:
NRF.findDevices(function(devices) {
...
}, {timeout : 2000, filters : [{ manufacturerData:{0x0590:{}} }] });
Затем вы можете воспользоваться BluetoothDevice.gatt.connect() на возвращенном устройстве, чтобы создать соединение.
Вы также можете воспользоваться NRF.connect(), задав в аргументе лишь возвращенную строку id, что может пригодиться, если вам надо подключиться к конкретному устройству.
Примеры
См.также
Внешние ссылки