嗨,对话,
我们正在DA14583上开发一个应用程序。我们指的是一个应用程序中的所有对话。
在这个适用性中,我们希望实现功能: -
如果30秒前没有写入任何自定义特征,
一世。断开设备
二。进入睡眠模式。
请提供实现这一目标的步骤。
我们通过在连接时创建计时器来尝试了这一点,在每个写入特征和超时调用“app_easy_gap_disconnect”API上修改它。但问题是,设备再次启动广告。
在进一步调试中,我们发现disconnection例程“user\u app\u disconnect”调用“user\u app\u adv\u start”api。从“user\u app\u disconnect”注释“user\u app\u adv\u start”api会导致设备连续重新启动。
1我们希望完整地解释断开连接时发生的情况(无论是从远程设备还是从Da14583启动)
2.为什么在断开连接后有必要启动广告。
三。请在对话框中提供所需的修改所有在一个应用程序中实现上述功能。
问候,
Karan.
设备:

嗨Karanshah28,
当DA14580与对等设备连接时,触发USER_APP_CONNECTION()回调函数。因此,在连接时,可以设置计时器(app_easy_timer()),如果到期,则会触发调用呼叫函数,以便调用app_easy_gap_disconnect(),这是断开连接的适当值。当对等设备写入特征时,您将获得一个Custs1_Val_Write_ind消息,将在User_catch_rest_hndl中处理。因此,如果您编写特征的值,您将拥有Top取消计时器正在执行app_easy_timer_cancel()API。如果在30秒内没有写入特性,则在我之前提到的情况下,外围设备将使用app_easy_gap_disconnect()API发送Gapc_disconnect消息。断开连接后,将触发USER_APP_DISCONNECT(),您必须将芯片放入睡眠模式。当设备断开连接时,无需重新启动广告,这些是根据您的应用要求。
谢谢,下午好
嗨,对话,
你能建议我们在一个应用程序中修改对话框中的代码吗?这样断开连接后,广告就不会自动启动了?
虽然我们尝试在所有的一个应用程序,它广告后,断开连接,不进入睡眠模式,而它是连接到移动设备。
你好,卡兰
嗨Karanshah28,
正如我在上一篇文章中提到的,当DA14580与对等设备断开连接时,将触发用户\u app \u disconnect()。如果您检查上述函数的源代码,您将看到用户\u app \u adv \u start()被执行。请用一个断点来澄清它,并在调试模式下运行代码。如果在用户\u app \u adv \u start()的调用中未命中断点,请检查哪些值具有状态变量。此外,当设备进行广告时,它会在广告间隔之间进入深度睡眠模式。在用户app\u adv\u start()中调用arch\u set\u deep\u sleep()。通常,芯片在广告或连接间隔之间进入休眠模式。请您澄清一下这个问题“它在断开连接后会做广告,并且在连接到移动设备时不会进入睡眠模式”?
谢谢,下午好
亲爱的支持团队,
您是正确的,我们还检查了设备断开连接时是否触发了用户\u app \u disconnect(),并启动了播发。
这是根据代码的,这是工作。
广告后,当广告计时器过期时进入睡眠模式。这是按照代码工作。
我们想要达到的是,
当设备与移动设备断开连接时,不应立即启动广告并进入睡眠模式。
因此,我们从user\u app\u disonnect()注释了代码user\u app\u adv\u start(),但随着这些更改,系统从某个地方崩溃了。
所以,你能否建议user_app_disconnect()函数的适当更改,以便广告不会启动,并且在断开连接后立即进入deep_sleep模式?
提前谢谢,
问候,
Karan.
嗨Karanshah28,
为了使设备进入深度睡眠模式,在user\u app\u disconnect()中,您应该将user\u app\u adv\u start()替换为arch\u set\u extended\u sleep()。如果你想醒来时按下按钮,你应该启用按钮以及。如果您发现任何有用的答案,请将其标记为“已接受”。
谢谢,下午好
嗨,对话小组,
我们尝试了用user_app_disconnect()中的Arch_set_extendend_sleep()替换user_app_adv_start()所要求的更改。此外,我们也使唤醒按下按钮。我们的系统开始崩溃。
我们在BLE_ALL_I_ONE_APP中尝试了同样的尝试,似乎它进入睡眠模式,但在按钮按下它没有。FYI,我们在BLE_ALL_IN_ONE_APP中添加了按钮按逻辑睡眠后醒来。
您能否在BLE_ALL_IN_ONE_APP中向我们提供样本,以使其在按钮上工作,或者建议我们可能缺少的内容?
欣赏帮助。
谢谢,卡兰
嗨Karanshah28,
请您在调试模式下运行代码,并澄清它崩溃的地方?是由于WDOG到期或NMI,或者你得到任何断言?BLE_APP_ALL_IN没有任何修改的SDK的一个示例是它正常工作?
谢谢,下午好
嗨,对话小组,
我们现在还不能调试代码,因为我们已经达到了Keil代码的计算极限,即32KB。
但是,没有任何修改的SDK的BLE_APP_ALL_IN_ONE示例将电路板带到睡眠模式。但它不会再在按键上做广告。
我们想在下一个按钮按下宣传。因此,我们将修改了代码,因为我在前一个线程中解释。但它什么都不做。
谢谢你,卡兰
嗨Karanshah28,
如果您希望Keil中的代码超过32KB,您应该购买keilide的完整版本
既然你没有完整版本的Keil,你是如何构建你的项目的?使用Keil的有限版本,您是否能够正确地构建“All-in-one”项目?
你怎么知道设备进入睡眠模式?耗电量是多少?设备启动广告,当弯腰广告进入睡眠模式?你能检查一下你是否烧坏了SPI闪存,这样设备就会从那里启动并进入睡眠模式吗?
ble\u app\u sleepmode实现了这个功能,所以您应该遵循我在这个示例中向您证明的步骤。
谢谢,下午好