Espruino:Справочник по API/Класс NRF/updateServices()
Функция NRF.updateServices()[1]
Синтаксис
NRF.updateServices(data)
Параметры
- data – сервис (и характеристики), которые надо обновить
Возвращаемое значение
Описание
Обновляет значения сервисов и характеристик, которые Espruino рассылает в своих пакетах объявлений. Это затронет только те сервисы и характеристики, которые ранее были объявлены с помощью функции NRF.setServices().
Чтобы обновить значение в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее:
NRF.updateServices({
0xBCDE : {
0xABCD : {
value : "Мир"
}
}
});
Вы также можете задавать 128-битные UUID вроде "b7920001-3c1b-4b40-869f-3c0db9be80c6".
Чтобы задать сервис и характеристику, а также сделать так, чтобы подключенным клиентам сообщали об этом изменении при нажатии на кнопку, сделайте следующее:
NRF.setServices({
0xBCDE : {
0xABCD : {
value : "Привет",
maxLen : 20,
notify: true
}
}
});
setWatch(function() {
NRF.updateServices({
0xBCDE : {
0xABCD : {
value : "Мир!",
notify: true
}
}
});
}, BTN, { repeat:true, edge:"rising", debounce: 50 });
Это работает, только если характеристика была создана при помощи NRF.setServices() с использованием настройки notify: true. В противном случае характеристика будет обновлена, но без уведомления.
Также обратите внимание, что в коде была задана настройка maxLen. Если бы ее не было, максимальным размером характеристики было бы «6» (это размер "Привет").
Чтобы сообщить (т.е. уведомить с помощью ACK) подключенных клиентов об изменении в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее:
NRF.updateServices({
0xBCDE : {
0xABCD : {
value : "Мир",
indicate: true
}
}
});
Это работает, только если характеристика была создана при помощи NRF.setServices() с использованием настройки indicate: true. В противном случае характеристика будет обновлена, но уведомления отправлено не будет.
Примеры
См.также
Внешние ссылки