MicroPython:Библиотеки/ubluetooth/Класс BLE/BLE.gatts register services()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


BLE.gatts register services()[1]

  • BLE.gatts_register_services(services_definition) – настраивает сервер при помощи заданных сервисов, заменяя все существующие сервисы.

Аргумент services_definition – это список сервисов, где каждый сервис – это 2-элементный кортеж, содержащий UUID и список характеристик.

Каждая характеристика – это 2- или 3-элементный кортеж, содержащий UUID, флаговое значение и опционально список дескрипторов.

Каждый дескриптор – это 2-элементный кортеж, содержащий UUID и флаговое значение.

Флаговое значение – это комбинация значений ubluetooth.FLAG_READ, ubluetooth.FLAG_WRITE и ubluetooth.FLAG_NOTIFY (см. ниже), заданных по принципу побитового ИЛИ.

Возвращаемое значение – это список (один элемент – один сервис) кортежей (один элемент – один указатель значения). Указатели характеристик и дескрипторов помещены в один и тот же кортеж в том порядке, в котором они были заданы.

Фрагмент кода ниже регистрирует два сервиса (Heart Rate и Nordic UART):

HR_UUID = bluetooth.UUID(0x180D)
HR_CHAR = (bluetooth.UUID(0x2A37), bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY,)
HR_SERVICE = (HR_UUID, (HR_CHAR,),)
UART_UUID = bluetooth.UUID('6E400001-B5A3-F393-E0A9-E50E24DCCA9E')
UART_TX = (bluetooth.UUID('6E400003-B5A3-F393-E0A9-E50E24DCCA9E'), bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY,)
UART_RX = (bluetooth.UUID('6E400002-B5A3-F393-E0A9-E50E24DCCA9E'), bluetooth.FLAG_WRITE,)
UART_SERVICE = (UART_UUID, (UART_TX, UART_RX,),)
SERVICES = (HR_SERVICE, UART_SERVICE,)
( (hr,), (tx, rx,), ) = bt.gatts_register_services(SERVICES)

Три указателя значения (hr, tx, rx) можно использовать в методах gatts_read, gatts_write, gatts_notify и gatts_indicate.

Примечание

Рассылку объявлений можно остановить до регистрации сервисов.

См.также

Внешние ссылки