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

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
10个职位/0个新职位
最后一篇文章
卡兰沙28
离线
最后一次见到:1年4个月前
已加入:2018-07-14 11:10
如果连接到移动设备,DA14583不会进入深度睡眠模式

嗨,对话,

我们正在DA14583上开发一个应用程序。我们指的是一个应用程序中的所有对话。

在此应用程序中,我们希望实现以下功能:-

如果30秒前没有写入任何自定义特征,

一。断开设备

二。进入睡眠模式。

请提供实现这一目标的步骤。

我们尝试通过在连接上创建一个计时器,在每个写特征上修改它,并在超时时调用“app\u easy\u gap\u 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.为什么断开连接后要启动广告。

3.请在对话框中提供所需的修改,以便在一个应用程序中实现上述功能。

当做,

卡兰

设备:
PM\U对话框
离线
最后一次见到:4天21小时前
工作人员
已加入:2018-02-08 11:03
你好,karanshah28,

你好,karanshah28,

当DA14580与对等设备连接时,将触发user\u app\u connection()回调函数。因此,在连接时,您可以设置一个计时器(app\u easy\u timer()),如果它过期,将触发回调函数以调用app\u easy\u gap\u disconnect(),这是断开连接的适当值。当对等设备写入特征时,您将获得CUSTS1\u VAL\u WRITE\u IND消息,该消息将在user\u catch\u rest\u hndl中处理。因此,如果您写入特征的值,您将使top cancel计时器执行app\u easy\u timer\u cancel()API。如前所述,如果特征没有在30秒内写入,外设将通过app\u easy\u gap\u DISCONNECT()API发送GAPC\u DISCONNECT消息。断开连接后,将触发用户\u app \u disconnect(),您必须将芯片置于睡眠模式。当设备断开连接时,不必重新启动广告,这是根据您的应用程序要求而定的。

谢谢,下午好

卡兰沙28
离线
最后一次见到:1年4个月前
已加入:2018-07-14 11:10
嗨,对话,

嗨,对话,

你能建议我们在一个应用程序中修改对话框中的代码吗?这样断开连接后,广告就不会自动启动了?

虽然我们尝试在所有的一个应用程序,它广告后,断开连接,不进入睡眠模式,而它是连接到移动设备。

你好,卡兰

PM\U对话框
离线
最后一次见到:4天21小时前
工作人员
已加入:2018-02-08 11:03
你好,karanshah28,

你好,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()。通常,芯片在广告或连接间隔之间进入休眠模式。请您澄清一下这个问题“它在断开连接后会做广告,并且在连接到移动设备时不会进入睡眠模式”?

谢谢,下午好

卡兰沙28
离线
最后一次见到:1年4个月前
已加入:2018-07-14 11:10
亲爱的支持团队,

亲爱的支持团队,

您是正确的,我们还检查了设备断开连接时是否触发了用户\u app \u disconnect(),并启动了播发。
符合规范,正常工作。
广告后,当广告计时器过期时进入睡眠模式。这是按照代码工作。

我们想要达到的是,
当设备与移动设备断开连接时,不应立即启动广告并进入睡眠模式。
因此,我们从user\u app\u disonnect()注释了代码user\u app\u adv\u start(),但随着这些更改,系统从某个地方崩溃了。

所以,您能建议对user\u app\u disconnect()函数进行适当的更改吗?这样,广告就不会启动,设备在断开连接后立即进入深度睡眠模式?

提前谢谢,
当做,
卡兰

PM\U对话框
离线
最后一次见到:4天21小时前
工作人员
已加入:2018-02-08 11:03
你好,karanshah28,

你好,karanshah28,

为了使设备进入深度睡眠模式,在user\u app\u disconnect()中,您应该将user\u app\u adv\u start()替换为arch\u set\u extended\u sleep()。如果你想醒来时按下按钮,你应该启用按钮以及。如果您发现任何有用的答案,请将其标记为“已接受”。

谢谢,下午好

卡兰沙28
离线
最后一次见到:1年4个月前
已加入:2018-07-14 11:10
嗨,对话小组,

嗨,对话小组,

我们尝试了您要求的更改,将用户\u app \u adv \u start()替换为用户\u app \u disconnect()中的arch \u set \u extended \u sleep()。我们还启用了按键唤醒功能。我们的系统开始崩溃。

我们在ble\ u all\ u i\ u one\ u应用程序中尝试了相同的方法,它似乎进入了睡眠模式,但在按下按钮时却一无所获。仅供参考,我们在ble\u all\u的一个应用程序中添加了按键逻辑,以便在睡眠后醒来。

你能给我们提供一个应用程序中的ble\u all\u示例,让它在按键时工作,或者建议我们可能缺少什么吗?

谢谢你的帮助。

谢谢,卡兰

PM\U对话框
离线
最后一次见到:4天21小时前
工作人员
已加入:2018-02-08 11:03
你好,karanshah28,

你好,karanshah28,

你能在调试模式下运行你的代码并说明它在哪里崩溃吗?是由于WDOG过期或NMI,还是您得到任何断言?在SDK的一个示例中,ble\u app\u all\u没有任何修改,它是否正常工作?

谢谢,下午好

卡兰沙28
离线
最后一次见到:1年4个月前
已加入:2018-07-14 11:10
嗨,对话小组,

嗨,对话小组,

我们现在还不能调试代码,因为我们已经达到了Keil代码的计算极限,即32KB。

但是,ble\u app\u all\u在SDK的一个示例中,没有任何修改,就将电路板置于睡眠模式。但它不会再在按键上做广告。

我们想在下一次按键时登广告。所以我们修改了代码,正如我在前面的线程中解释的。但它什么也没做。

谢谢你,卡兰

PM\U对话框
离线
最后一次见到:4天21小时前
工作人员
已加入:2018-02-08 11:03
你好,karanshah28,

你好,karanshah28,

  • 我们现在还不能调试代码,因为我们已经达到了Keil代码的计算极限,即32KB。

如果您希望Keil中的代码超过32KB,您应该购买keilide的完整版本

  • 但是,ble\u app\u all\u在SDK的一个示例中,没有任何修改,就将电路板置于睡眠模式。

既然你没有完整版本的Keil,你是如何构建你的项目的?使用Keil的有限版本,您是否能够正确地构建“All-in-one”项目?

  • 但它不会再在按键上做广告。

你怎么知道设备进入睡眠模式?耗电量是多少?设备启动广告,当弯腰广告进入睡眠模式?你能检查一下你是否烧坏了SPI闪存,这样设备就会从那里启动并进入睡眠模式吗?

  • 我们想在下一次按键时登广告。所以我们修改了代码,正如我在前面的线程中解释的。但它什么也没做。

ble\u app\u sleepmode实现了这个功能,所以您应该遵循我在这个示例中向您证明的步骤。

谢谢,下午好