醒醒但不做广告

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
3个职位/0个新职位
最后一篇文章
Thanhtu131号
离线
最后一次见到:3个月1周前
已加入:2018-09-18 17:44
醒醒但不做广告

嗨,我正在创建一个基于ble\u sleepmode\u示例的操作。当我站起来时,基地行动是这样的:

第1步:在主函数中调用user\u app\u init()(在user\u callback\u config.h中注册)。

第二步:由于user\u app\u adv\u start()是在user\u callback\u config.h文件的结构user\u default\u app\u operations中注册的,所以接下来将调用user\u app\u adv\u start()。在这个函数中,广告将被启动,当然函数adv\u data\u update\u timer\u cb()将在10秒后被调用以停止广告->这是由函数app\u easy\u timer(app\u adv\u data\u update\u to,adv\u data\u update\u timer\u cb)注册的;

第3步:停止播发时,将调用user\u app\u adv\u undirect\u complete()(因为此函数是在user\u callback\u config.h中注册的)。在这个函数中,arch_ble_ext_wakeup_on()将配置系统,只有配置好的外部中断源才能唤醒系统;之后,调用app_button_enable()来配置上面的外部中断源,以及在中断到来和系统被唤醒时调用哪个函数(我不能在这里显示详细代码,因为它很长)

第4步:在下一次睡眠中,系统不会被BLE定时器唤醒,它只会被配置的外部中断源唤醒。如果中断出现,系统将被唤醒,并调用user\u app\u adv\u start()。->操作将从步骤2开始重复。

现在,我想修改代码,使之适合我的项目。我将配置两个按钮:BTN1和BTN2作为唤醒控制器的外部源。BTN1将唤醒系统,以便播发和连接其他设备。使用BTN2,我只想唤醒系统来处理来自传感器的一些数据,而不是播发或连接其他设备。因此,如果系统被BTN2唤醒,我将进行一些修改并禁用函数user\u app\u adv\u start()中的两行代码,它们是:

---->app\u adv\u data\u update\u timer\u used=app\u easy\u timer(app\u adv\u data\u update\u TO,adv\u data\u update\u timer\u cb);

---->app_easy_gap_undirected_advertise_start();

您可以在随附的pdf文件中的图1中看到详细信息。

我的唤醒外部中断源配置正常。但是BTN2唤醒操作有问题。在函数app\u wakeup\u cb()中,它将检查ke\u状态是否为app\u CONNECTABLE(十进制2),它将调用user\u app\u adv\u start(),否则它将不调用user\u app\u adv\u start()。在这之前,我放了一个日志,结果总是APP\u DB\u INIT(十进制1)。所以我卡在这里,下一个手术无法开始。您可以在随附的pdf文件中的图2中看到详细信息。

我怎样才能解决这个问题?请帮忙!!我期待着你的来信。

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

你好,Thanhtu131,

谢谢你的论坛帖子和你的描述。我建议你先检查一下UM-B-050:DA1458x软件开发人员指南(SDK5)为了更好地理解ble\u app\u睡眠模式示例以及回调函数的顺序,请参阅第8.50节。

关于BTN2,您能分享一下唤醒控制器是如何配置的吗?您应该遵循ble\u app\u sleepmode示例,并使用不同的回调函数来修改数据。例如,BTN2的app\u wakeu\u cb应该不同。

谢谢,下午好

Thanhtu131号
离线
最后一次见到:3个月1周前
已加入:2018-09-18 17:44
嗨,非常感谢你的邀请

嗨,非常感谢你的建议,对我的项目很有效。