TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: 关于蓝牙发现服务,获取char 代码的问题

Part Number:LAUNCHXL-CC26X2R1

图中红色部分,pDataList[3], pDataList[4]是怎么来的,我看之前有些代码当中这一步使用的是pDataList[0], pDataList[1],不明白这么写的依据是什么?

Galaxy Yue:

你好,

从机定义的特征值呢,不是说有都有读写功能的,必须是有读写功能的你才能获得它的句柄

可以查看一下该link

https://software-dl.ti.com/lprf/simplelink_cc2640r2_latest/docs/blestack/ble_user_guide/doxygen/ble/html/structatt_read_by_type_rsp__t.html

uint8 * 
pDataList

 
List of 1 or more attribute handle-value pairs (2 to ATT_MTU_SIZE-2)

pDataList包含多个数据对,数据对由handle和Value组成,关于数组内0,1认为是指向特定数据对的索引,就是说,0、1和3、4指向不同

,

Wei Pan:

Galaxy Yue 说:pDataList包含多个数据对,数据对由handle和Value组成,关于数组内0,1认为是指向特定数据对的索引,就是说,0、1和3、4指向不同

那这边所说的指向不同,能不能举例详细描述一下,另外这个Pdata[]是和从机端的属性表有联系吗

,

Galaxy Yue:

1.指向没有例子,就是一个概念

数据对由handle和Value组成,关于数组内0,1认为是指向特定数据对的索引 比如说0指向的是handle,而1指向的是value,它们共同作为一个数据对

2.pDataList的参数定义是和属性表有关 

to read a Characteristic Value from a server  读取的是server端的

https://software-dl.ti.com/lprf/simplelink_cc2640r2_latest/docs/blestack/ble_user_guide/doxygen/ble/html/group___a_t_t___g_a_t_t.html#gae945c86f97b691117321bf9711f73a91

,

Wei Pan:

以下是   static void SimpleCentral_processGATTDiscEvent(gattMsgEvent_t *pMsg)这个函数的几个截图

从这一个函数当中,我们可以看到程序主要是先查找服务uuid,再查找char uuid,之后存取一个句柄,我之所以想要问pDataList[3], pDataList[4]这个指向的具体含义,是因为最终得到的这个句柄到底是什么,我存在疑惑,按照GATT层的定义,一个characteristic是由  Declaration attribute  ,Value attribute  ,   Descriptors  attribute  等组成,我现在是认为pDataList[3], pDataList[4]获取到的是对应的Value attribute的句柄,

如果现在是pDataList[0], pDataList[1]获取到的是对应的  Declaration attribute 的句柄,不知道我这样的理解是否正确 

,

Galaxy Yue:

你的理解是正确的,

一个characteristic是由  Declaration attribute  ,Value attribute  ,   Descriptors  attribute  组成

pDataList[3], pDataList[4]获取到的是对应的Value attribute的句柄

pDataList[0], pDataList[1]获取到的是对应的  Declaration attribute 的句柄

看参数描述的时候,数据对是我混淆了

,

Wei Pan:

好的,感谢

,

Galaxy Yue:

不用客气

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: 关于蓝牙发现服务,获取char 代码的问题
分享到: 更多 (0)