完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
GATT_DiscPrimaryServiceByUUID 这个执行后,event里回的ATT_FindByTypeValueRsp这个结构体包含了哪些信息?和static gattAttribute_t simpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED] =
[ // Simple Profile Service [ [ ATT_BT_UUID_SIZE, primaryServiceUUID ], /* type */ GATT_PERMIT_READ, /* permissions */ 0, /* handle */ (uint8 *)&simpleProfileService /* pValue */ ], 这个结构体有关么?有关的话这个对应关系是咋样的呢?看了很久代码,没想明白,先谢谢了 |
|
相关推荐
9个回答
|
|
跟这个关系不大.
GATT_DiscPrimaryServiceByUUID 通过你指定的UUID去发现一个Primary service. ATT_FindByTypeValueRsp 里面 的结构体 attFindByTypeValueRsp_t, 内容是根据你需要的UUID, 返回的primary service的attribute handle的个数, 以及以这个primary service的attribute handle值开始, 到这个primary service 所有属性定义结束为一个group的最有一个属性的attribute handle值. 总而言之, 返回的是总共有几个这个UUID的primary service, 以及这几个primary service, 每一个primary service的attribute handle, 最后一个属性的attribute handle. 看这两个: /** * Handles Infomation format. */ typedef struct [ uint16 handle; //!< Found attribute handle uint16 grpEndHandle; //!< Group end handle ] attHandlesInfo_t; /** * Find By Type Value Response format. */ typedef struct [ uint8 numInfo; //!< Number of handles information found attHandlesInfo_t handlesInfo[ATT_MAX_NUM_HANDLES_INFO]; //!< List of 1 or more handles information ] attFindByTypeValueRsp_t; |
|
|
|
骑猪去天山 发表于 2018-5-14 00:23 那这个primary service的attribute handle的个数,primary service的attribute handle的开始值是在哪边定义的呢? |
|
|
|
surezc 发表于 2018-5-14 00:32 Hi Feng, 在每个示例程序里面的init函数里面, 都会有一系列Add service之类的函数. 通过你之前看到的那些定义好的service结构体, 通过调用add service函数, 底层的协议栈会自动分配好Handle. |
|
|
|
骑猪去天山 发表于 2018-5-14 00:42 这个handle代码啥意思呢?和init注册的结构体的关系是怎么样的呢? |
|
|
|
骑猪去天山 发表于 2018-5-14 00:42 GATT_DiscPrimaryServiceByUUID传入的UUID就是simpleProfileAttrTbl结构体中primaryServiceUUID的UUID么? |
|
|
|
surezc 发表于 2018-5-14 01:17 没错, 在simple peripheral 这个例子里面, 就是SIMPLEPROFILE_SERV_UUID |
|
|
|
这里面的数据的传输,好像完全是借鉴网络数据传输的那种概念,和网络传输的协议和封装的都很相似
|
|
|
|
在问两个问题 1.这张表的开头是佛必须以开始? // Simple Profile Service [ [ ATT_BT_UUID_SIZE, primaryServiceUUID ], /* type */ GATT_PERMIT_READ, /* permissions */ 0, /* handle */ (uint8 *)&simpleProfileService /* pValue */ ], 2. characteristic declaration 和value分别是做什么用的呢?这两个有关系么 // Characteristic 1 Declaration [ [ ATT_BT_UUID_SIZE, characterUUID ], GATT_PERMIT_READ, 0, &simpleProfileChar1Props ], // Characteristic Value 1 [ [ ATT_BT_UUID_SIZE, simpleProfilechar1UUID ], GATT_PERMIT_READ | GATT_PERMIT_WRITE, 0, &simpleProfileChar1 ], |
|
|
|
Hi Feng, 你的第一个问题看不懂是要问什么? 第二个问题, 这个value就是这个characteristic对应的要操作的值. 这些都是可以在蓝牙协议栈介绍中可以找到的关于BLE的GATT定义的非常基本的概念. 我这里开课的话不太合适, 东西比较多, 你可以看上面的教学视频, 也可以看上面的深度培训文档, 最好是可以去blueooth sig 官网上下载spec: https://www.bluetooth.org/en-us/specification/adopted-specifications 其中第三章 volume 3 Core System Package 里面的 part G: GENERIC ATTRIBUTE PROFILE (GATT) 里面的第三章 3 SERVICE INTEROPERABILITY REQUIREMENTS, 这里面有很详细的介绍 service, characteristic 定义的内容. 最后, 你也可以看一下TI_BLE_Software_Developer's_Guide.pdf, 这个是跟着你下载的BLE协议栈一起有的. 里面的第37页, 有个很详细的以simpleBLEPeripheral为例子的service和characteristic定义的表格. |
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
577 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1028 浏览 1 评论
677 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
500 浏览 1 评论
1024 浏览 0 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
133浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
105浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
114浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
112浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
141浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-11 02:58 , Processed in 0.884120 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号