This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何更具service的UUID查找出下属的characteristic

Other Parts Discussed in Thread: CC2540

现在我用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