嗨对话框,
我们正在在DA14583开发申请。我们指的是dialog_all_in_one应用程序。
在这个适用性中,我们希望实现功能: -
如果任何自定义特征都没有写入到30秒,那么
一世。断开设备
II。转到睡眠模式。
请提供实现这一目标的步骤。
我们通过在连接时创建计时器来尝试了这一点,在每个写入特征和超时调用“app_easy_gap_disconnect”API上修改它。但问题是,设备再次启动广告。
在进一步的调试中,我们发现Disconnetion例程“user_app_disconnect”调用“user_app_adv_start”API。从“user_app_disconnect”中评论“user_app_adv_start”API,导致连续设备重新启动。
1.我们希望完全解释关于在断开断开时发生的情况(从远程设备或DA14583发起)
2.为什么在断开连接后有必要启动广告。
3.请在Dialog_All_in_one应用程序中提供修改,以实现上述功能。
问候,
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(),您必须将芯片放入睡眠模式。当设备断开连接时,无需重新启动广告,这些是根据您的应用要求。
谢谢,PM_DIALOG.
嗨对话框,
您能否建议我们在Dialog_All_in_one应用程序中的代码更改,使得在断开连接之后,广告不会自动启动?
虽然我们在ALL_IN_ONE_APP中尝试时,它在断开连接后宣传,而在连接到移动设备时不会进入睡眠模式。
问候,卡兰
嗨Karanshah28,
正如我在我之前的帖子中提到的那样,当DA14580与对等设备断开连接时,将触发USER_APP_DISCONNECT()。如果检查上述函数的源代码,则会看到执行user_app_adv_start()。请休闲点澄清它并在调试模式下运行代码。如果断点不在user_app_adv_start()的调用中击中,请检查哪个值具有状态变量。此外,当设备通告时,它将在广告间隔之间进入深度睡眠模式。ARCH_SET_DEEP_SLEEP()在USER_APP_ADV_START()中调用。通常,芯片在广告或连接间隔之间进入睡眠模式。您能否澄清这个问题“它在断开连接后宣传并在连接到移动设备时不进入睡眠模式”?
谢谢,PM_DIALOG.
亲爱的支持团队,
您是正确的,我们还检查了触发设备user_app_disconnect()的断开,并启动广告。
这是根据代码的,这是工作。
当广告定时器到期时,它进入睡眠模式。这是按代码工作。
我们想要实现的是,
当设备断开与移动设备的连接时,它不应该启动广告并立即进入睡眠模式。
所以我们评论了代码user_app_adv_start()来自user_app_disoonnect(),但是使用该更改系统从某些情况下崩溃。
所以,你能否建议user_app_disconnect()函数的适当更改,以便广告不会启动,并且在断开连接后立即进入deep_sleep模式?
提前致谢,
问候,
Karan.
嗨Karanshah28,
为了将设备放入深度休眠模式,在user_app_disconnect()中,您应该替换aser_app_add_start()与Arch_set_extended_sleep()。如果您想用按钮醒来,您也应该启用按钮。如果您发现任何答案有用,请将其标记为“已接受”。
谢谢,PM_DIALOG.
嗨对话小组,
我们尝试了用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中向我们提供样本,以使其在按钮上工作,或者建议我们可能缺少的内容?
欣赏帮助。
谢谢,Karan.
嗨Karanshah28,
请您在调试模式下运行代码,并澄清它崩溃的地方?是由于WDOG到期或NMI,或者你得到任何断言?BLE_APP_ALL_IN没有任何修改的SDK的一个示例是它正常工作?
谢谢,PM_DIALOG.
嗨对话小组,
我们现在无法调试代码,因为我们已达到Keil i.e 32kb中的代码评估限制。
但是,没有任何修改的SDK的BLE_APP_ALL_IN_ONE示例将电路板带到睡眠模式。但它不会再次宣传按钮。
我们想在下一个按钮按下宣传。因此,我们将修改了代码,因为我在前一个线程中解释。但它什么都不做。
谢谢你,卡兰
嗨Karanshah28,
如果您想在Keil的代码超过32KB,您应该购买Keil IDE的完整版本
由于您没有完整版的Keil,您是如何构建项目的?使用Keil的有限版本,您是否能够正确地构建“全部”项目?
您如何知道设备进入睡眠模式?功耗多少钱?该设备启动广告,当Stoops广告进入睡眠模式时?您能否检查是否已烧掉SPI闪光灯,因此设备靴子在那里形成ang进入睡眠模式?
BLE_APP_SLEEPMODE实现此功能,因此您应该按照我在此示例中证明您的步骤进行操作。
谢谢,PM_DIALOG.