Espruino:Справочник по API/Класс NRF/updateServices(): различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= ==Синтакс...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=<ref>[ www.espruino.com - ]</ref>= | =Функция NRF.updateServices()<ref>[https://www.espruino.com/Reference#t_l_NRF_updateServices www.espruino.com - NRF.updateServices]</ref>= | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
NRF.updateServices(data) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Параметры== | ==Параметры== | ||
* '''data''' – сервис (и характеристики), которые надо обновить | |||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
Строка 21: | Строка 21: | ||
==Описание== | ==Описание== | ||
Обновляет значения сервисов и характеристик, которые Espruino рассылает в своих пакетах объявлений. Это затронет только те сервисы и характеристики, которые ранее были объявлены с помощью функции [https://www.espruino.com/Reference#l_NRF_setServices NRF.setServices()]. | |||
Чтобы обновить значение в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее: | |||
<syntaxhighlight lang="javascript"> | |||
NRF.updateServices({ | |||
0xBCDE : { | |||
0xABCD : { | |||
value : "Мир" | |||
} | |||
} | |||
}); | |||
</syntaxhighlight> | |||
Вы также можете задавать 128-битные UUID вроде "b7920001-3c1b-4b40-869f-3c0db9be80c6". | |||
Чтобы задать сервис и характеристику, а также сделать так, чтобы подключенным клиентам сообщали об этом изменении при нажатии на кнопку, сделайте следующее: | |||
<syntaxhighlight lang="javascript"> | |||
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 }); | |||
</syntaxhighlight> | |||
Это работает, только если характеристика была создана при помощи [https://www.espruino.com/Reference#l_NRF_setServices NRF.setServices()] с использованием настройки notify: true. В противном случае характеристика будет обновлена, но без уведомления. | |||
Также обратите внимание, что в коде была задана настройка maxLen. Если бы ее не было, максимальным размером характеристики было бы «6» (это размер "Привет"). | |||
Чтобы сообщить (т.е. уведомить с помощью ACK) подключенных клиентов об изменении в характеристике '0xABCD' сервиса '0xBCDE', сделайте следующее: | |||
<syntaxhighlight lang="javascript"> | |||
NRF.updateServices({ | |||
0xBCDE : { | |||
0xABCD : { | |||
value : "Мир", | |||
indicate: true | |||
} | |||
} | |||
}); | |||
</syntaxhighlight> | |||
Это работает, только если характеристика была создана при помощи [https://www.espruino.com/Reference#l_NRF_setServices NRF.setServices()] с использованием настройки indicate: true. В противном случае характеристика будет обновлена, но уведомления отправлено не будет. | |||
{{Примечание1|Дополнительную информацию ищите в описании [https://www.espruino.com/Reference#l_NRF_setServices NRF.setServices()].}} | |||
== Примеры == | == Примеры == | ||
Строка 29: | Строка 88: | ||
=См.также= | =См.также= | ||
=Внешние ссылки= | =Внешние ссылки= | ||
Строка 35: | Строка 94: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Espruino | {{Навигационная таблица/Портал/Espruino}} | ||
Текущая версия от 17:53, 12 июня 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. В противном случае характеристика будет обновлена, но уведомления отправлено не будет.
Примеры
См.также
Внешние ссылки