对话小组
您好再次,我有很多困难,更新的启动/停止/重启延长休眠模式的BLE广告,所以我的问题是我不能动态地更新广告数据的响应。我还不再有在这个新的设计因此我NO GPIO一个按钮可以用作唤醒信号。
我们正在使用SDK5。我曾尝试的事情是:
1.创造我们自己的default_advertise_operation(user_callback_config.h)停止广告,更新数据,并重新启动广告,但是这个功能只运行一次在广告永远模式。它永远不会被再次调用和广告数据永远不会改变,永远通告。
2.做同样的事情在1号,而是利用与超时模式广告。广告停止,我们在延长休眠,但其仍保持永远的方式。它永远不会再醒来,因为我们不再需要GPIO将其唤醒。
3.添加2号和尝试添加一个内核计时器(如这里讨论http://support.dialog-semiconductor.com/wakeup-sleep-timeout),但这种方法并不为我工作。它产生相同的结果数2。
4.试图通过在user_app_main_loop_callbacks的.app_before_sleep回调将app_easy_gap_advertise_stop停止广告。应用程序崩溃,我做这个广告的时候停止。
5.创建我们自己的app_resume_from_sleep功能停止广告,更新数据,并重新启动广告。应用程序崩溃,我做这个广告的时候停止。
最后,我想实现的流程是:
1.更新广告数据
2.启动广告5秒(延长休眠其间发送)
3.延伸睡眠5秒(无广告)
4.重复
你可以提供任何有识之士将不胜感激。
设备:
你好JD @ EXP-eng,
广告字符串的变化是相当简单的,刚开始的广告,当你想改变字符串的值只停留广告改变字符串,并再次启动。既然你给自己定的发布时间间隔的设备将被唤醒自身并开始投放广告,你不必启动和停止投放广告时要送东西在空中,exept每次如果你想改变在每个广告emmition的字符串。请看看准系统例如,在SDK获取更多信息。关于你的期望,你可以做到以下几点:
1)设置你的广告数据。
2)开始的广告和设置内核计时器将在5秒(该设备将做广告5秒)过去。
3)在定时器的处理程序,发出停止广告所以当时间5秒经过的广告将停止。也再次在定时器处理程序中设置另一个计时器,将在5秒的流逝而当时间过后再次宣传(或者当您停止广告或当您重新更改进阶字符串)。当设备无关(无BLE活动),它会睡觉(因为你是在延长休眠模式)。
如果我误解了您的方案,请让我知道,希望上面的帮助。
谢谢mt_dialog.
你已经正确认识了我。第1步完成。我被困在第2步。如何正确地实施SDK5内核定时器?只是为了确保,内核定时器可唤醒延长休眠设备,正确的?我已经读过了FAQ,但它并没有为我工作(HTTP://support.dialog-semiconductor.com/faq/how-create-timer-extended-sl ...)。为实施该项目准系统内核定时器?原谅我,如果我忽略关于内核定时器的文档。我相信,我非常非常接近。请LMK感谢
你好JD @ EXP-eng,
在SDK5它更容易使用的内核定时器。所有你需要做的是设置一个变量,将举行定时器的ID和下面的指示的功能设置定时器。
timer_id = app_easy_timer(countdown_time,handler_function);
该定时器开始计数后,唤醒设备和执行定时器处理函数的说明。该准系统示例实现广告更换装置,你可以在ble_examples发现它在SDK5 - ble_app_barebone。
谢谢mt_dialog.