characteristic

Доступ к характеристике на периферийном устройстве Bluetooth Low Energy

Описание

A characteristic объект представляет характеристику Bluetooth® Низкоэнергетическое периферийное устройство. Если чтение или запись поддерживаются в объекте Attributes свойство, вы можете считать значения характеристик используя read или можно записать значения признаков, используя write. Если у характеристики есть какие-либо дескрипторы, вы также можете получить к ним доступ, используя descriptor.

Создание

Описание

пример

c = characteristic(b,serviceName,characteristicName) создает объект, который представляет характеристику на периферийном устройстве b использование имени службы и характеристики. Идентифицируйте serviceName и characteristicName при просмотре Characteristics свойство ble b объекта.

пример

c = characteristic(b,serviceUUID,characteristicUUID) создает объект для характеристики с помощью UUID и UUID службы. Идентифицируйте serviceUUID и characteristicUUID при просмотре Characteristics свойство ble b объекта.

Входные параметры

расширить все

Подключение периферийного устройства Bluetooth Low Energy, заданное как ble объект.

Имя службы характеристики, заданное как вектор символов или строковый скаляр. Идентифицируйте serviceName в Characteristics таблицы ble объект, который представляет ваше периферийное устройство. The ServiceName в столбце перечислены допустимые значения.

Полный список стандартных сервисов и как их интерпретировать смотрите на сайте Bluetooth SIG. Все пользовательские службы в Characteristics таблица имеет имя "Custom" и дифференцируются по их значениям UUID. Если имя службы "Custom", затем используйте служебный UUID для доступа к нему.

Пример: c = characteristic(b,"Current Time Service","Current Time") создает объект, который представляет "Current Time" характеристика на "Current Time Service".

Типы данных: char | string

Имя характеристики, заданное как вектор символов или строковый скаляр. Идентифицируйте characteristicName в Characteristics таблицы ble объект, который представляет ваше периферийное устройство. The CharacteristicName в столбце перечислены допустимые значения.

Полный список стандартных характеристик и как их интерпретировать смотрите на сайте Bluetooth SIG. Все пользовательские характеристики в Characteristics таблица имеет имя "Custom" и дифференцируются по их значениям UUID. Если имя характеристики "Custom", затем используйте UUID характеристики для доступа к нему.

Пример: c = characteristic(b,"Current Time Service","Current Time") создает объект, который представляет "Current Time" характеристика на "Current Time Service".

Типы данных: char | string

Служебный UUID характеристики, заданный как вектор символов или строковый скаляр. Идентифицируйте serviceUUID в Characteristics таблицы ble объект, который представляет ваше периферийное устройство. The ServiceUUID в столбце перечислены допустимые значения.

Полный список стандартных сервисов и как их интерпретировать смотрите на сайте Bluetooth SIG. Если имя службы "Custom", затем используйте служебный UUID для доступа к нему.

Пример: c = characteristic(b,"1805","2A2B") создает объект, который представляет характеристику с UUID "2A2B«на службе с UUID» 1805".

Типы данных: char | string

Характеристический UUID, заданный как вектор символов или скалярная строка. Идентифицируйте characteristicUUID в Characteristics таблицы ble объект, который представляет ваше периферийное устройство. Допустимые значения указаны в CharacteristicUUID столбец.

Полный список стандартных характеристик и как их интерпретировать смотрите на сайте Bluetooth SIG. Если имя характеристики "Custom", затем используйте UUID характеристики для доступа к нему.

Пример: c = characteristic(b,"1805","2A2B") создает объект, который представляет характеристику с UUID "2A2B«на службе с UUID» 1805".

Типы данных: char | string

Свойства

расширить все

Это свойство доступно только для чтения.

Имя характеристики, возвращаемое как строковый скаляр.

Типы данных: string

Это свойство доступно только для чтения.

Характеристический UUID, возвращенный как строковый скаляр. Это значение характерно для каждого признака.

Типы данных: string

Это свойство доступно только для чтения.

Атрибуты характеристики, возвращенные как строковые массивы. Значение этого свойства определяет поведение read, write, subscribe, и unsubscribe функций. Следующие возможные значения.

ЗначениеОписание
"Read"Характеристика читаема
"Write"Характеристика может быть записана
"WriteWithoutResponse"Характеристика доступна для записи с неподдерживаемыми пакетами
"AuthenticatedSignedWrites"Характеристика поддерживает запись со знаком
"Notify"Характеристика поддерживает уведомление
"Indicate"Характеристика поддерживает индикацию
"Broadcast"Характеристика поддерживает вещание с рекламными пакетами
"ExtendedProperties"Характеристика содержит ExtendedProperties дескриптор с дополнительными атрибутами
"NotifyEncryptionRequired" (только для macOS)Характеристика поддерживает уведомление только с доверенных устройств
"IndicateEncryptionRequired" (только для macOS)Характеристика поддерживает индикацию только от доверенных устройств

Типы данных: string

Функция Data available, возвращенная как указатель на функцию. Это свойство является пустым массивом, пока вы не назначите указатель на функцию. Используйте это свойство для характеристик, поддерживающих уведомление и/или индикацию.

Для примера, показывающего, как назначить коллбэк этому свойству, смотрите Чтение характеристических данных с Bluetooth Low Energy Peripheral Device Using a Функция Обратного Вызова.

Пример:

Напишите функцию displayHeartRate который считывает и отображает данные из характеристики, создает указатель и присваивает указатель этому свойству.

c.DataAvailableFcn = @displayHeartRate;
Функция вызывается каждый раз, когда поступает новое уведомление или индикация. Остановите уведомление или индикацию используя unsubscribe.

Типы данных: function_handle

Дескрипторы характеристик, возвращенные как таблица. Чтобы получить доступ к конкретному дескриптору, перечисленному в таблице, создайте объект используя descriptor. Таблица содержит следующие столбцы.

СтолбецОписание
DescriptorNameИмя дескриптора, возвращенное как строка
DescriptorUUIDUUID дескриптора, возвращенный как строка
AttributesРазрешения на чтение или запись дескриптора, возвращенные как массив ячеек

Типы данных: table

Функции объекта

readЧтение данных характеристики или дескриптора на периферийном устройстве Bluetooth Low Energy
writeЗапись данных в характеристику или дескриптор на периферийном устройстве Bluetooth Low Energy
subscribeПодпишитесь на уведомление о характеристике или индикацию
unsubscribeОтписаться от уведомления о характеристиках и индикации
descriptorДоступ к дескриптору на периферийном устройстве Bluetooth Low Energy

Примеры

свернуть все

Подключитесь к ближайшему периферийному устройству Bluetooth Low Energy.

b = ble("DemoDev")
b = 
  ble with properties:

               Name: "DemoDev"
            Address: "FF548EA5658F"
          Connected: 1
           Services: [5×2 table]
    Characteristics: [10×5 table]

Show services and characteristics

Перечислите доступные характеристики на этом устройстве.

b.Characteristics
ans=10×5 table
        ServiceName                     ServiceUUID                               CharacteristicName                           CharacteristicUUID                Attributes  
    ___________________    ______________________________________    ____________________________________________    ______________________________________    ______________

    "Generic Access"       "1800"                                    "Device Name"                                   "2A00"                                    {1×2 string  }
    "Generic Access"       "1800"                                    "Appearance"                                    "2A01"                                    {["Read"    ]}
    "Generic Access"       "1800"                                    "Peripheral Preferred Connection Parameters"    "2A04"                                    {["Read"    ]}
    "Generic Access"       "1800"                                    "Central Address Resolution"                    "2AA6"                                    {["Read"    ]}
    "Generic Attribute"    "1801"                                    "Service Changed"                               "2A05"                                    {["Indicate"]}
    "Heart Rate"           "180D"                                    "Heart Rate Measurement"                        "2A37"                                    {["Notify"  ]}
    "Heart Rate"           "180D"                                    "Body Sensor Location"                          "2A38"                                    {["Read"    ]}
    "Battery Service"      "180F"                                    "Battery Level"                                 "2A19"                                    {["Read"    ]}
    "Custom"               "03B80E5A-EDE8-4B33-A751-6CE34EC4C700"    "Custom"                                        "7772E5DB-3868-4112-A1A9-F2669D106BF3"    {1×6 string  }
    "Custom"               "03B80E5A-EDE8-4B33-A751-6CE34EC4C700"    "Custom"                                        "7772E5DC-3868-4112-A1A9-F2669D106BF3"    {1×3 string  }

В этом списке показаны все характеристики и соответствующие услуги. Некоторые сервисы имеют несколько характеристик. В списке также показаны атрибуты для каждого признака.

Создайте объект характеристики, который представляет "Battery Level" характеристика.

c = characteristic(b,"Battery Service","Battery Level")
c = 
  Characteristic with properties:

             Name: "Battery Level"
             UUID: "2A19"
       Attributes: "Read"
      Descriptors: []

Кроме того, для создания объекта можно использовать идентификаторы UUID вместо имен.

c = characteristic(b,"180F","2A19")
c = 
  Characteristic with properties:

             Name: "Battery Level"
             UUID: "2A19"
       Attributes: "Read"
      Descriptors: []

Этот объект представляет "Battery Level" характеристика. Поскольку он имеет Read атрибут, можно использовать read для получения значения характеристики.

Введенный в R2019b