停止和启动广告导致硬故障

6个帖子/ 0新
最后一篇
eli.iser.
离线
最后一次露面:5年9个月前
加入:2014-04-13 07:54
停止和启动广告导致硬故障

使用SDK 3.0.6时,使用完全托管的近距离记者项目停止并启动广告导致硬故障。当Proxr_Task使用时,这会发生在以下情况下:
1.直接调用app_adv_stop和app_adv_start。
2.向App_Task发送消息以启动/停止(基于App_Adv_Timer_Handler和App_WakeUp_Handler(App_adv_Timer和App_WakeUp_msg消息)的默认处理程序)。
3.向App_Task发送定时消息以启动/停止。无论超时值如何,都会立即发生硬断层。

在App_adv_Func函数的末尾在App_Adv_FUNC函数的末尾添加到App_adv_timer的唯一作品,该邮件调用app_adv_stop,并向调用app_adv_start的app_wakeup_msg发送定时消息。

控制广告不是来自app_task的正确方法是什么?我们需要通过我们的配置文件任务收到的​​命令来控制它。

mhv_dialog
离线
最后一次露面:1周4天前
员工
加入:2013-12-06 15:10

如果我正确地了解您,您希望在连接状态下向外设发送某些东西时开始或停止广告?或者您只是试图避免广告数据?

eli.iser.
离线
最后一次露面:5年9个月前
加入:2014-04-13 07:54
我需要开始和停止

由于UART命令,我需要启动和停止广告(我已经实现了一个专有的UART协议,绕过默认的UART协议。到目前为止,这是正确的)。无需更改广告数据,也没有需要在连接状态期间停止广告(有一个单独的命令断开与活动连接))。
在Proxr_Task的上下文中,我收到了一个UART命令来停止或启动广告,并且我需要能够相应地停止或启动广告。

mhv_dialog
离线
最后一次露面:1周4天前
员工
加入:2013-12-06 15:10
嗨,

嗨,

上面的选项2应该正常工作(“向App_Task发送消息以启动/停止)。

此通话将执行以下操作:

ke_msg_send_basic(app_adv_done,task_app,task_app);

您需要枚举新的原始App_adv_done(在app_api.h中):

/// app任务消息
enum app_msg.

app_module_init_cmp_evt = ke_first_msg(task_app),

app_adv_done,

您当然需要为该邮件的处理程序定义app_task_handlers.h

{app_adv_done,(ke_msg_func_t)app_adv_done_handler},

定义App_xxx_proj.c中的处理程序(以及在.h文件中的原型):

int app_adv_done_handler(
ke_msg_id_t const msgid,
ke_task_id_t const dest_id,
ke_task_id_t const src_id.

{
app_adv_stop();
return(ke_msg_consumed);
}

eli.iser.
离线
最后一次露面:5年9个月前
加入:2014-04-13 07:54
事实证明,很难

事实证明,硬故障在不相关的代码中。您建议的代码正常工作,非常感谢您。

mhv_dialog
离线
最后一次露面:1周4天前
员工
加入:2013-12-06 15:10
嗨,

嗨,

很高兴听到你解决了这个问题。