结束角色切换后,BLE服务不存在

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
6个员额/ 0个新员额
最后发表
paul.deboer
离线
最后看到:1年7个月前
加入:2014-06-03 10:57
结束角色切换后,BLE服务不存在

亲爱的对话框,

我们已经创建了BLE软件的一个版本,我们从外围角色开始并做广告。当我通过LightBlue连接设备时,我可以看到电池服务器,suota服务器服务。

按下按钮后,我间歇地将角色更改为观察者(通过GAPM_RESET_CMD和app_configuration_func),并扫描一段时间后返回外围角色(通过GAPM_RESET_CMD和app_configuration_func),并再次开始发布。我只是遵循了几个线程,您在其中解释了应该如何完成。

这一切都很正常,除了当我再次通过LightBlue连接设备时,不再有服务。这种情况一直持续到我给设备充电,之后我确实再次看到了服务。

当执行GAPM_RESET_CMD时返回外围角色时,初始化的某些部分没有执行吗?如果是,我需要更改或调用什么才能获得与最初相同的服务?

设备:
PM_Dialog
离线
最后看到:11小时54分钟前
工作人员
加入:2018-02-08 11:03
嗨paul.deboer,

嗨paul.deboer,

初始化系统时会初始化服务。请检查user_app_init()回调函数是否调用default_app_on_init()。在这个函数中,所有的服务都是在设备启动时初始化的。我假设GAPM_RESET_CMD可能不会对包含的服务造成任何问题,并且您应该能够在BLE通用移动应用程序中看到它们。请您在调试模式下运行固件,并检查当您发送GAPM_RESET_CMD命令以便重新启动广告时发生了什么?代码是在某处卡住了,还是运行正常?

谢谢,PM_Dialog

paul.deboer
离线
最后看到:1年7个月前
加入:2014-06-03 10:57
我很确定app_init

我确定app_init没有被调用,因此app_init_func没有被调用,我在那个方法上有断点,它们没有被命中。我已经注意到app_env。next_prf_init = APP_PRF_LIST_START + 1;没有完成,所以app_db_init_func没有做任何事情。我不认为代码卡住了,因为其他一切似乎都工作,我可以连接和断开外设,这证明代码是工作的。

PM_Dialog
离线
最后看到:11小时54分钟前
工作人员
加入:2018-02-08 11:03
嗨paul.deboer,

嗨paul.deboer,

我无法在我的身边复制它。我使用的是SDK5.0.4中修改过的ble_app_sleepmode示例,我通过按下一个按钮(SW3按钮,用于唤醒设备)切换角色。每次连接移动应用,我都能看到所有的服务被使用。为了做到这一点,您能否分享您所遵循的步骤,以及为了复制您的问题,您在哪个SDK示例中工作?

谢谢,PM_Dialog

paul.deboer
离线
最后看到:1年7个月前
加入:2014-06-03 10:57
我们使用的是SDK 3.0.10.1,但是

我们使用的是SDK 3.0.10.1,但让我看看我是否能想出一个复制该行为的示例项目

PM_Dialog
离线
最后看到:11小时54分钟前
工作人员
加入:2018-02-08 11:03
嗨paul.deboer,

嗨paul.deboer,

目前还不支持SDK3,所以我建议你改用最新版本的SDK5.0.4,然后尝试实现“角色转换”功能。

谢谢,PM_Dialog