完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
使用标题的函数后如果成功后,会发出一个消息:ATT_READ_BY_GRP_TYPE_RSP
static void simpleBLEGATTDiscoveryEvent( gattMsgEvent_t *pMsg )在处理函数中 pMsg中的内容: attReadByGrpTypeRsp_t readByGrpTypeRsp; //!< ATT Read By Group Type Response typedef struct [ uint8 numGrps; //!< Number of attribute handle, end group handle and value sets found uint8 len; //!< Length of each attribute handle, end group handle and value set uint8 dataList[ATT_MTU_SIZE-2]; //!< List of 1 or more attribute handle, end group handle and value ] attReadByGrpTypeRsp_t; numGrps是搜索到的Services组数 len为下面dataList的长度 但是,在simplecenter中 搜索到的num为3 len为6 dataList内容为 : 01,00,0B,00,00,18 不知道这些数据怎么理解。。是不是扫描过程中出错了。因为我center跟peripheral连接的。如果是handle 值肯定不对吧。 我就是想找到所有服务的handle |
|
相关推荐
4 个讨论
|
|
|
史蒂文,
首先,dataList 的内容应该有21个字节。。。你不能把后面的内容给省略掉,也贴出来看看? 另外,这个len,不是dataList 的长度,是表示每个Group 内容的长度。。。你这里总共有3个group,每个group 内容长度为6,所以,dataList 除了这6个字节,后面应该还有有效数据呢。 我来给你解释一下 这六个字节的意思吧,后面的两对,你应该自己也能看懂了: 01,00,0B,00,00,18, 首先,01,00 这一对,代表这个group 的开始attribute handle, 倒过来看,就是0x0001, 其次,0B,00 这一对,代表这个group 的结束attribute handle, 倒过来看,就是0x000B, 最后,00, 18 这一对,代表着这个group的service UUID,再倒过来看,就是0x1800, 这个是Generic Access Profile,就是GAP 的service 的UUID。 很清楚吧? 后面其他两个,也这么去看,这里dataList总共有效数据18个字节。 |
|
|
|
|
|
|
|
骑猪去天山 发表于 2019-11-11 11:35 GATT_DiscAllPrimaryServices ( uint16 connHandle, uint8 taskId ) discover all the primary services on a server.发现服务器上所有的主服务 得到数据3 x 6 = 18 0001--000B,1800(GAP_SERVICE_UUID) 000C -- 000F, 1801(GATT_SERVICE_UUID) 0010--0022,180A(DEVINFO_SERV_UUID) SimpleBLEPeripheral Application: Attribute Table(cc2540 user guide P16) 固定的服务 1、自定义的#define SIMPLEPROFILE_SERV_UUID 0xFFF0怎么没有在那些Group里面 ?那要如何得到? 2、获取AllService的uuid限制在3个? 3、目的:在不知道自定义Characteristic的UUID情况下 获取自定义Characteristic的UUID。 4、通过获取DiscAllPrimaryServices的内容,感觉一般好像用不上啊。属性都是只读的。 |
|
|
|
|
|
|
|
|
史蒂文, 1, 必须可以查到,只是你还没查到而已。 2. 因为呢,BLE 包的大小限制,一次最多只能发20个字节的数据,所以接下来的其他service,会再通过read请求进行回复。 3. 这个,得从应用上解决了。告诉你个窍门,我自己平常在用的一个技巧,你可以试一下命令GATT_DiscAllCharDescs() 这个接口,这个能自动把所有service 查找完,应该能发现你要的UUID。通常方法的话,你的在每次GATT_DiscAllPrimaryServices() 收到回复之后,根据得到的最后一个Handle,再继续查找后续的内容。 4. 属性,是你自己设定的:)当然,有些系统的profile和service的属性,已经定义好了,你没法改。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 10:48 , Processed in 1.299994 second(s), Total 59, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
873