亲爱的对话框,
我们创建了一个版本的BLE软件,我们从外设角色开始并广告。当我通过LightBlue连接到设备时,我可以看到电池服务器,Suota Server服务。
在按钮按下,我间歇地将角色更改为观察者(通过GAPM_RESET_CMD和APP_CONFIGORY_FUND)并在返回外围角色(通过GAPM_RESET_CMD和APP_CONFIGORY_FUNC)之前扫描一段时间并再次启动广告。我只是遵循几个线程,在那里你解释了它应该如何完成。
这一切都可以正常工作,除了我再次通过LightBlue连接到设备时,不再有服务了。这仍然是这种情况,直到我动力循环设备,之后我再次看到服务。
在执行GapM_RESET_CMD时返回外围角色时,初始化的某些部分是未执行的吗?如果是这样,我需要更改或呼叫,以便能够获得最初的服务?
设备:
嗨paul.deboer,
服务在系统初始化后初始化。请检查user_app_init()调用default_app_on_init()的回调函数。在此功能中,设备靴子时初始化所有服务。我假设GAPM_RESET_CMD可能不会导致包含的服务发生任何问题,并且您应该能够在BLE通用移动应用程序中看到它们。请在调试模式下运行固件,并检查发送GAPM_RESET_CMD命令是否重新启动广告时会发生什么?代码是否粘在某个地方或运行正确?
谢谢,PM_DIALOG.
我确定app_init未调用并因此未调用app_init_func,我在该方法上有断点,它们不会被命中。我已经注意到了app_env.next_prf_init = app_prf_list_start + 1;没有完成,所以app_db_init_func没有做任何事情。我不认为代码被困,因为其他一切似乎都在工作,我可以连接和断开到外围的连接,证明代码正在运行。
嗨paul.deboer,
我无法在我身边复制它。我正在使用SDK5.0.4的修改BLE_APP_SLEEPMODE示例,并使用按钮按下的角色(SW3按钮,用于唤醒设备)。每次使用移动应用程序连接时,我都可以看到所有的服务。要这样做,请您可以分享您遵循的步骤,并在SDK的哪个示例中您正在努力复制您的问题?
谢谢,PM_DIALOG.
我们正在使用SDK 3.0.10.1但是让我看看我是否可以提出一个复制行为的示例项目
嗨paul.deboer,
目前尚未支持SDK3,所以我建议您进入SDK5.0.4,这是最新版本,然后尝试实现“角色切换”功能。
谢谢,PM_DIALOG.