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:
不用客气