微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 在SimpleBLEPeripheral里面怎么理解UUID 和handle呢?

在SimpleBLEPeripheral里面怎么理解UUID 和handle呢?

时间:10-02 整理:3721RD 点击:

tao,

UUID, 就是用来唯一识别一个特征值的ID.

handle,就是对应的attribute 的一个句柄。

所有对特征值的操作,都是通过对UUID 的搜索得到对应的handle之后,通过handle来操作特征值的。

有兴趣的话,可以看一下蓝牙spec里面关于GATT 和 ATT 的那层解释。

通过与HOST的通讯,见下列信息!

187] : <Tx> - 03:32:47.781
-Type : 0x01 (Command)
-Opcode : 0xFD8A (GATT_ReadCharValue)
-Data Length : 0x04 (4) byte(s)
ConnHandle : 0x0000 (0)
Handle : 0x0003 (3)
Dump(Tx):
01 8A FD 04 00 00 03 00
------------------------------------------------------------------------------------------------------------------------
[188] : <Rx> - 03:32:47.796
-Type : 0x04 (Event)
-EventCode : 0xFF (HCI_LE_ExtEvent)
-Data Length : 0x06 (6) bytes(s)
Event : 0x067F (GAP_HCI_ExtentionCommandStatus)
Status : 0x00 (Success)
OpCode : 0xFD8A (GATT_ReadCharValue)
DataLength : 0x00 (0)
Dump(Rx):
04 FF 06 7F 06 00 8A FD 00
------------------------------------------------------------------------------------------------------------------------
[189] : <Rx> - 03:32:48.921
-Type : 0x04 (Event)
-EventCode : 0xFF (HCI_LE_ExtEvent)
-Data Length : 0x1B (27) bytes(s)
Event : 0x050B (ATT_ReadRsp)
Status : 0x00 (Success)
ConnHandle : 0x0000 (0)
PduLen : 0x15 (21)
Value : 53 69 6D 70 6C 65 20 42 4C 45 20 50 65 72 69 70 68 65 72 61 6C
Dump(Rx):
04 FF 1B 0B 05 00 00 00 15 53 69 6D 70 6C 65 20
42 4C 45 20 50 65 72 69 70 68 65 72 61 6C

是通过主机发出需要访问Handle所对应地址的数据,然后从机先应答,然后给出数据,是这样理解吗?

在simpleBLEPeripheral里面程序是怎么响应主机的TX的呢?这个部分需要详细解答一下,谢谢!

tao,

是的,这就是一个主机读的过程。

以simpleBLEPeripheral 为例,你可以参考一下simpleGATTprofile.c 文件中的 simpleProfile_ReadAttrCB() 函数。

这个回调函数就是你能看到的主机的读请求入口。这个函数里面就是对读请求进行回应的。

have fun!

所有的与主机的通讯,均是建立在消息的读写过程是吗?包括从机广播,主机扫描等。。。

Hi.yan,

 刚刚在simpleProfile_ReadAttrCB()里面打了断点,但是跑了从机与主机连接通讯等过程,程序没有执行到该函数里面,是什么原因呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top