如果连接到移动设备,DA14583不会转到深度睡眠模式

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
10个帖子/ 0新
最后一篇
Karanshah28.
离线
最后一次露面:1年3个月前
加入:2018-07-14 11:10
如果连接到移动设备,DA14583不会转到深度睡眠模式

嗨对话框,

我们正在在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应用程序中提供修改,以实现上述功能。

问候,

卡兰

设备:
PM_DIALOG.
离线
最后一次露面:9小时前1天
职员
加入:2018-02-08 11:03
嗨karanshah28,

嗨karanshah28,

当DA14580与对端设备建立连接时,会触发user_app_connection()回调函数。因此,在连接时,您可以设置一个计时器(app_easy_timer()),如果它过期,将触发一个回调函数,以便调用app_easy_gap_disconnect(),这是断开连接的适当值。当一个特征被对等设备写入时,您将得到CUSTS1_VAL_WRITE_IND消息,该消息将在user_catch_rest_hndl中处理。因此,如果您编写该特征的值,您将让top cancel计时器执行app_easy_timer_cancel() API。如果该特征没有在30秒内写入,如前所述,外设将使用app_easy_gap_disconnect() API发送一个GAPC_DISCONNECT消息。断开连接时,user_app_disconnect()将被触发,您必须将芯片放入睡眠模式。当设备断开连接时,没有必要重新启动广告,这取决于您的应用程序要求。

谢谢,PM_DIALOG.

Karanshah28.
离线
最后一次露面:1年3个月前
加入:2018-07-14 11:10
嗨对话框,

嗨对话框,

您能否建议我们在Dialog_All_in_one应用程序中的代码更改,使得在断开连接之后,广告不会自动启动?

虽然我们在ALL_IN_ONE_APP中尝试时,它在断开连接后宣传,而在连接到移动设备时不会进入睡眠模式。

问候,卡兰

PM_DIALOG.
离线
最后一次露面:9小时前1天
职员
加入:2018-02-08 11:03
嗨karanshah28,

嗨karanshah28,

正如我在我之前的帖子中提到的那样,当DA14580与对等设备断开连接时,将触发USER_APP_DISCONNECT()。如果检查上述函数的源代码,则会看到执行user_app_adv_start()。请休闲点澄清它并在调试模式下运行代码。如果断点不在user_app_adv_start()的调用中击中,请检查哪个值具有状态变量。此外,当设备通告时,它将在广告间隔之间进入深度睡眠模式。ARCH_SET_DEEP_SLEEP()在USER_APP_ADV_START()中调用。通常,芯片在广告或连接间隔之间进入睡眠模式。您能否澄清这个问题“它在断开连接后宣传并在连接到移动设备时不进入睡眠模式”?

谢谢,PM_DIALOG.

Karanshah28.
离线
最后一次露面:1年3个月前
加入:2018-07-14 11:10
亲爱的支持团队,

亲爱的支持团队,

您是正确的,我们还检查了触发设备user_app_disconnect()的断开,并启动广告。
这是按照代码,这是工作。
当广告定时器到期时,它进入睡眠模式。这是按代码工作。

我们想要实现的是,
当设备断开与移动设备的连接时,它不应该启动广告并立即进入睡眠模式。
所以我们评论了代码user_app_adv_start()来自user_app_disoonnect(),但是使用该更改系统从某些情况下崩溃。

所以,能否建议适当更改user_app_disconnect()函数,使断开连接后不会启动广告,设备立即进入deep_sleep模式?

提前致谢,
问候,
卡兰

PM_DIALOG.
离线
最后一次露面:9小时前1天
职员
加入:2018-02-08 11:03
嗨karanshah28,

嗨karanshah28,

为了将设备放入深度休眠模式,在user_app_disconnect()中,您应该替换aser_app_add_start()与Arch_set_extended_sleep()。如果您想用按钮醒来,您也应该启用按钮。如果您发现任何答案有用,请将其标记为“已接受”。

谢谢,PM_DIALOG.

Karanshah28.
离线
最后一次露面:1年3个月前
加入:2018-07-14 11:10
嗨对话小组,

嗨对话小组,

我们尝试了您提出的更改,将user_app_disconnect()中的user_app_adv_start()替换为arch_set_extended_sleep()。我们还启用了按下按钮的唤醒功能。我们的系统开始崩溃。

我们在ble_all_i_one_app中尝试相同的,它似乎进入睡眠模式,但按下按钮它什么也不做。供参考,我们在ble_all_in_one_app中添加了按钮按下逻辑以在睡眠后醒来。

你能不能提供ble_all_in_one_app中的样品,让它在按钮按下时工作,或者建议我们可能缺少什么?

感谢的帮助。

谢谢,Karan.

PM_DIALOG.
离线
最后一次露面:9小时前1天
职员
加入:2018-02-08 11:03
嗨karanshah28,

嗨karanshah28,

你能不能在调试模式下运行你的代码,并澄清它在哪里崩溃?是由于WDOG过期还是NMI,或者你得到了任何断言?ble_app_all_在一个例子的SDK没有任何修改它工作正确吗?

谢谢,PM_DIALOG.

Karanshah28.
离线
最后一次露面:1年3个月前
加入:2018-07-14 11:10
嗨对话小组,

嗨对话小组,

我们现在无法调试代码,因为我们已达到Keil i.e 32kb中的代码评估限制。

但是,ble_app_all_in_one的SDK示例没有任何修改,使单板进入睡眠模式。但它不会再次宣传按钮。

我们想在下一个按钮上做广告。因此,我们按照我在前一个线程中解释的那样修改了代码。但它什么也没做。

谢谢你,卡兰

PM_DIALOG.
离线
最后一次露面:9小时前1天
职员
加入:2018-02-08 11:03
嗨karanshah28,

嗨karanshah28,

  • 我们现在无法调试代码,因为我们已达到Keil i.e 32kb中的代码评估限制。

如果您想在Keil的代码超过32KB,您应该购买Keil IDE的完整版本

  • 但是,ble_app_all_in_one的SDK示例没有任何修改,使单板进入睡眠模式。

由于您没有完整版的Keil,您是如何构建项目的?使用Keil的有限版本,您是否能够正确地构建“全部”项目?

  • 但它不会再次宣传按钮。

您如何知道设备进入睡眠模式?功耗多少钱?该设备启动广告,当Stoops广告进入睡眠模式时?您能否检查是否已烧掉SPI闪光灯,因此设备靴子在那里形成ang进入睡眠模式?

  • 我们想在下一个按钮上做广告。因此,我们按照我在前一个线程中解释的那样修改了代码。但它什么也没做。

BLE_APP_SLEEPMODE实现此功能,因此您应该按照我在此示例中证明您的步骤进行操作。

谢谢,PM_DIALOG.