如何更具service的UUID查找出下属的characteristic
现在我用gap中的程序查出了设备所含有的所有service的UUID和所有service的Handle范围,
但接下来怎么样做才能找出下属所有的Characteristic 的 UUID和handle
aojie,
推荐你一个很好的PC 工具,TI 官网上去搜索 BLE Device Monitor, 和CC2540 dongle 一起配合使用, 查找连接上你的设备后,就会有惊喜了:)
您好,
2、GATT-通用属性规范:
协议栈的GATT层被设计用于两个连接设备应用程序中的数据通信。从GATT的立场而言,当两个设备建立连接之后,他们扮演两种角色中的一种:
GATT客户端——设备从GATT服务端读写数据。
GATT服务端——设备的数据被GATT客户端读写。
这里需要注意GATT角色和LL层的角色是独立的没有联系的。
一个GATT服务包含一个或者多个服务,是一个完成特定功能或特征的数据集合。
关键字是服务使用的数值,包含属性和配置信息。GATT定义了搜索服务、读属性、写属性的子过程。
GATT服务的关键字值包含属性和配置信息(描述符)存储在属性表中。属性表是一个简单的数据库包含一小段数据被称作是属性。
除了本身的值,每个属性都有与它相关的下列属性:
Handle(句柄)——这本质上是属性在表中的地址,每一个属性都有一个唯一的句柄。
Type(类型)——这个表明数据代码什么,通常被称作是UUID(蓝牙SIG或客户定义)。
Permissions(权限)——这个决定GATT客户端设备是否能够操作属性值、如何操作属性值。
GATT定义了GATT客户端和GATT服务端之间通信的子过程:
Read Characteristic Value——通过特殊的句柄来读取值
Read Using Characteristic UUID——通过UUID来读取值和句柄
Read Multiple Characteristic Values——通过一些句柄来读取值
Read Characteristic Descriptor——通过特殊的句柄来读取描述符
Discover Characteristic by UUID——通过UUID来查找关键字
Write Characteristic Value——通过特殊的句柄来写关键字值
Write Characteristic Descriptor——通过特殊的句柄来写关键字描述符
Characteristic Value Notification——服务端通知客户端关键字值,客户端收到数据后不需要答复,但是需要事先配置为关键字使能通。一个Profile定义了服务端何时发送该数据。
如yan所说,请使用pc工具先跑一遍例程。可以添加一些串口打印信息结合ccdebug跑一遍效果更好。可以参考我之前的帖子,里面有详细介绍。
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/61462.aspx