Espruino:Справочник по API/Класс NRF/updateServices(): различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 7: | Строка 7: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
NRF.updateServices(data) | NRF.updateServices(data) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 25: | Строка 25: | ||
Чтобы обновить значение в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее: | Чтобы обновить значение в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
NRF.updateServices({ | NRF.updateServices({ | ||
0xBCDE : { | 0xBCDE : { | ||
Строка 39: | Строка 39: | ||
Чтобы задать сервис и характеристику, а также сделать так, чтобы подключенным клиентам сообщали об этом изменении при нажатии на кнопку, сделайте следующее: | Чтобы задать сервис и характеристику, а также сделать так, чтобы подключенным клиентам сообщали об этом изменении при нажатии на кнопку, сделайте следующее: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
NRF.setServices({ | NRF.setServices({ | ||
0xBCDE : { | 0xBCDE : { | ||
Строка 67: | Строка 67: | ||
Чтобы сообщить (т.е. уведомить с помощью ACK) подключенных клиентов об изменении в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее: | Чтобы сообщить (т.е. уведомить с помощью ACK) подключенных клиентов об изменении в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
NRF.updateServices({ | NRF.updateServices({ | ||
0xBCDE : { | 0xBCDE : { |
Версия от 18:30, 14 мая 2023
Функция 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. В противном случае характеристика будет обновлена, но уведомления отправлено не будет.
Примечание: Дополнительную информацию ищите в описании NRF.setServices().
Примеры
См.также
Внешние ссылки