设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2945|回复: 3
打印 上一主题 下一主题

协议栈配置central 和 peripheral uuid数目问题?以及主机发现从机服务发现问题?

[复制链接]

4

主题

10

帖子

56

积分

注册会员

Rank: 2

积分
56
跳转到指定楼层
楼主
赵阳 发表于 2019-7-5 10:33:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 赵阳 于 2019-7-5 10:33 编辑

图1 设置定制UUID 数目
问题一:这个uuid数目是主机和从机一样吗?
问题二:如果从机有两个任务,设置为2,那主机设置为1,主机是不是发现不了其中一个服务?







图二 discovery all service     AND  discovery a  specific service
问题一:无论是官方的SDK 还是青风教程,主机代码和教程都只是针对定制服务,进行处理如下代码所示。
err_code = sd_ble_gattc_primary_services_discover(conn_handle,
                                                      SRV_DISC_START_HANDLE,
                                                     &(p_srv_being_discovered->srv_uuid));
没有对 Generic Access  Generic Attribute  Device information  Unknown  等服务进行描述,主机改怎样从从机发现这些服务,比如电池服务,不仅要发现电池服务还要发现电池服务的Generic Access服务里面的name????当然app软件nRF Connect做主机能全部发现从机的任何服务,这些在主机教程代码中,是怎样一个过程???是怎样发现全部服务的过程?????

按照流程图所示,修改了发现如下代码,但是就只能发现一个服务?????                                               
err_code = sd_ble_gattc_primary_services_discover(p_gap_evt->conn_handle,
                                                                  SRV_DISC_START_HANDLE,NULL);
问题二:图一与图二有没有间接联系?
问题三:希望青风能出一篇关于发现 discovery all service     AND  discovery a  specific service的教程




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
沙发
admin 发表于 2019-7-5 10:48:18 | 只看该作者
第一个问题:主机没有UUID的,主机只是需要判断发现的服务UUID是不是符合要求的,所有说没有要求数目一样。

第二个问题:发现服务过程是发现所有服务的过程,并不是只发现一个服务,主机教程里写的很清楚,发现完所有服务后,才触发回调事件。例子这个可以参考主机心电的例子,心电服务里有多个服务。

第三个问题:发现服务是找到属性参数,这个再主机串口教程里详细说明了。比如你说的电池服务,如下下图:,主机电池服务文件里就有基础数据发现回调。


最后:建议,把主机串口教程里的发现服务过程重新阅读一遍就理解了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

4

主题

10

帖子

56

积分

注册会员

Rank: 2

积分
56
板凳
 楼主| 赵阳 发表于 2019-7-5 12:04:22 | 只看该作者
admin 发表于 2019-7-5 10:48
第一个问题:主机没有UUID的,主机只是需要判断发现的服务UUID是不是符合要求的,所有说没有要求数目一样。 ...

心电服务他们的Generic Access的UUID是1800,下面Device name 是0x2A00,描述符是read和write,,现在我要对这个名字进行改写,并保证其他心电服务也能工作。在主机代码中,我是不是要发现设备名字的uuid,确定它是0X2A00,然后进行读写?从哪个方向去做?
回复 支持 反对

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
地板
admin 发表于 2019-7-5 21:10:41 | 只看该作者
赵阳 发表于 2019-7-5 12:04
心电服务他们的Generic Access的UUID是1800,下面Device name 是0x2A00,描述符是read和write,,现在我要 ...

设备名字的UUID特征任何例子都是0x2A00,这个是默认的,要改名要把名字存到FLASH中后,在更改GAP名字设置,这个再4.0网盘里有例子,这个并不是服务。
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-11-23 03:51 , Processed in 0.124560 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表