你好
我正在使用DSP来执行角色切换:我不断改变来自外设到Central的角色,并且还有两个广告数据包的选项(用于汇总 - >广告1,广告2,扫描......)。我正在使用app_gapm_reset_op();用于在传输之间重置堆栈。如果我扫描我在静态结构Gapm_set_dev_config_cmd * app_easy_gap_dev_config_create_msg(void)中的角色(0x05),它将0x0a(外围角色)。
我的问题是,当我连接到设备时,对等设备无法发现服务,并且从某种原因返回空空。如果正在重置堆栈但仅从一个广告商转换为另一个广告商,则不会发生这种情况,并且正在检测到服务,因此我的事情是以某种方式与扫描定义相关。
连接启动器是对等设备(当DA1480在广告模式时)。
任何想法如何发生这种情况?
谢谢
设备:
你好,
一个纠正,即使没有扫描也会发生。我注意到它发生时没有SPS_SERVER_ENABLE_CFM回调。
嗨Asalhuv,
我不确定如何完成实现,而是意识到,当建立连接时,该连接作为中心或作为外围设备,设备进入发现过程模式。这意味着在连接建立时作为中央的核心,您开始向外设发送一些命令,以便在外围设备上发现可用的服务。在DSP主机中,这是启动的App_prf_enable()函数,该函数将启动此发现链。完成后,设备将在其正常功能中开始运行。
关于DSP的外设侧,在为设备上电时,外围设备需要构建将构成受支持服务的数据库,该构建在App_db_init_start()函数中完成,SDK将检查支持的配置文件并将调用DB函数的次数(在DSPS的情况下,user_sps_db_create()函数)。这将导致外围设备中的全套服务。所以关于你的问题,您是否在外围方面实施这些服务,以便客户能够发现它们?只需从核心切换到外设就不足以使外围设备包含您所需要的服务。
谢谢mt_dialog.
你好
复位后,数据基于外围模式启动。我正在使用app_gapm_reset_op()以在模式之间重置。对于扫描模式,我只会在app_easy_gap_dev_config_create_msg(void)函数中更改cmd->角色,函数为gap_central_mst。当定时器完成时,我再次重置堆栈,然后将CMD->角色配置为外设。
连接由对等设备(智能手机)启动,显然当我的设备处于外围模式时。似乎Altohgh确实创建了DB(我在返回true的app_db_init_start()中看到它),没有数据库数据要发送到对等设备。
不需要解释,刚才弄明白了自己。在数据库准备好之前,我开始宣传。
谢谢 !!!
嗨Salhuv,
谢谢你的表明。
最好的问候mt_dialog.