Main Content

characteristic

访问低功耗 Bluetooth 外围设备的特征

说明

characteristic 对象表示低功耗 Bluetooth® 外围设备的一项特征。如果对象的 Attributes 属性支持读取或写入,您可以使用 read 读取特征值,或使用 write 写入特征值。如果特征有任何描述符,您也可以使用 descriptor 访问它们。

创建对象

描述

c = characteristic(b,serviceName,characteristicName) 使用服务名称和特征名称创建表示外围设备 b 上的特征的对象。通过查看 ble 对象 bCharacteristics 属性,确定 serviceNamecharacteristicName

示例

c = characteristic(b,serviceUUID,characteristicUUID) 使用 UUID 和服务 UUID 为特征创建对象。通过查看 ble 对象 bCharacteristics 属性,确定 serviceUUIDcharacteristicUUID

示例

输入参量

全部展开

低功耗 Bluetooth 外围设备连接,指定为 ble 对象。

特征的服务名称,指定为字符向量或字符串标量。在表示您的外围设备的 ble 对象的 Characteristics 表中确定 serviceNameServiceName 列中列出了有效值。

有关标准服务及其解释的完整列表,请访问 Bluetooth SIG 网站Characteristics 表中的所有自定义服务都具有名称 "Custom",因而这些服务是根据其 UUID 值进行区分的。如果服务名称是 "Custom",请使用服务 UUID 来访问它。

示例: c = characteristic(b,"Current Time Service","Current Time") 创建一个对象,该对象表示 "Current Time Service" 上的 "Current Time" 特征。

数据类型: char | string

特征名称,指定为字符向量或字符串标量。在表示您的外围设备的 ble 对象的 Characteristics 表中确定 characteristicNameCharacteristicName 列中列出了有效值。

有关标准特征及其解释的完整列表,请访问 Bluetooth SIG 网站Characteristics 表中的所有自定义特征都具有名称 "Custom",因而这些特征是根据其 UUID 值进行区分的。如果特征名称是 "Custom",则使用特征 UUID 来访问它。

示例: c = characteristic(b,"Current Time Service","Current Time") 创建一个对象,该对象表示 "Current Time Service" 上的 "Current Time" 特征。

数据类型: char | string

特征的服务 UUID,指定为字符向量或字符串标量。在表示您的外围设备的 ble 对象的 Characteristics 表中确定 serviceUUIDServiceUUID 列中列出了有效值。

有关标准服务及其解释的完整列表,请访问 Bluetooth SIG 网站。如果服务名称是 "Custom",请使用服务 UUID 来访问它。

示例: c = characteristic(b,"1805","2A2B") 创建一个对象,该对象表示在具有 UUID“1805”的服务上具有 UUID“2A2B”的特征。

数据类型: char | string

特征 UUID,指定为字符向量或标量字符串。在表示您的外围设备的 ble 对象的 Characteristics 表中确定 characteristicUUID。有效值列在 CharacteristicUUID 列中。

有关标准特征及其解释的完整列表,请访问 Bluetooth SIG 网站。如果特征名称是 "Custom",则使用特征 UUID 来访问它。

示例: c = characteristic(b,"1805","2A2B") 创建一个对象,该对象表示在具有 UUID“1805”的服务上具有 UUID“2A2B”的特征。

数据类型: char | string

属性

全部展开

此 属性 为只读。

特征名称,以字符串标量形式返回。

数据类型: string

此 属性 为只读。

特征 UUID,以字符串标量形式返回。该值对每个特征唯一。

数据类型: string

此 属性 为只读。

特征属性,以字符串数组形式返回。该属性的值决定 readwritesubscribeunsubscribe 函数的行为。可能的值如下。

描述
"Read"特征为可读
"Write"特征为可写
"WriteWithoutResponse"特征对于未确认的数据包是可写的
"AuthenticatedSignedWrites"特征支持签名写入
"Notify"特征支持通知
"Indicate"特征支持指示
"Broadcast"特征支持用广告数据包进行广播
"ExtendedProperties"特征包含具有附加属性的 ExtendedProperties 描述符
"NotifyEncryptionRequired"(仅限 macOS特征仅支持来自可信设备的通知
"IndicateEncryptionRequired"(仅限 macOS特征仅支持来自可信设备的指示

数据类型: string

数据可用函数,以函数句柄形式返回。在为函数句柄赋值之前,此属性是空数组。将此属性用于支持通知和/或指示的特征。

有关如何为此属性指定回调的示例,请参阅使用回调函数从低功耗蓝牙外围设备读取特征数据

示例:

编写函数 displayHeartRate,它从特征中读取和显示数据,创建句柄,并将该句柄赋给此属性。

c.DataAvailableFcn = @displayHeartRate;
每当收到新通知或指示时,都会调用该函数。使用 unsubscribe 停止通知或指示。

数据类型: function_handle

特征描述符,以表的形式返回。要访问表中列出的特定描述符,请使用 descriptor 创建对象。表包含以下列。

描述
DescriptorName描述符的名称,以字符串形式返回
DescriptorUUID描述符的 UUID,以字符串形式返回
Attributes描述符的读取或写入权限,以元胞数组形式返回

数据类型: table

对象函数

read读取低功耗 Bluetooth 外围设备上的特征或描述符数据
write将数据写入低功耗 Bluetooth 外围设备的特征或描述符
subscribe订阅特征通知或指示
unsubscribe取消订阅特征通知和指示
descriptor访问低功耗 Bluetooth 外围设备上的描述符

示例

全部折叠

连接到附近的低功耗蓝牙外围设备。

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 中推出