不可连接广播模式下的广告完成回调。

3个帖子/ 0个新帖子
最后发表
ciano
离线
最后看到:3周21小时前
加入:2014-10-03 08:13
不可连接广播模式下的广告完成回调。

亲爱的对话框,

我已经开始使用新的SDK 5系列。

我想要动态地改变广告数据,我有你的例子“Ble_app_peripheral”,它工作得很好,但像往常一样,我有一个小改变。
我想广播在不可连接的广告在这个配置:

Static const struct advertise_configuration user_non_connectable_advertise_conf ={
///发布操作类型。
.advertise_operation = ADV_NON_CONN,
///设备自己的BD地址来源:
.address_src = GAPM_PUBLIC_ADDR,
/ / /广告间隔
.intv = 8000, // *0.625ms(+伪随机advDelay从0到10ms)
/ /地图/广告通道
.channel_map = 0 x7,
};

static const enum gap_adv_mode user_non_connectable_advertise_mode = gap_broad_mode;

重要问题:我使用的是gap_broadaster_mode。

现在我想继续你的例子“Ble_app_peripheral”,这是使用回调配置在“user_callback_config.h”重新启动广告,但我不能让回调函数工作:
.app_on_adv_undirect_complete = user_app_adv_undirect_complete,
.app_on_adv_direct_complete =零,

我的问题是:是否有回调映射到我上面提到的广告的COMPLETE ?

最好的问候,
Ciano霜
丹麦

设备:
MT_dialog
离线
最后看到:6个月3个星期前
工作人员
加入:2015-06-08 34
嗨ciano,

嗨ciano,

不,没有一个捕捉非连接广告结尾的回叫。但你能做的是:

1选项是最简单的,你可以把这个案例GAPM_ADV_NON_CONN:在gapm_cmp_evt_handler()中的"case GAPM_ADV_UNDIRECT",并使用无向广告回调函数来获得一个不可连接的广告的结束。

选项2(正确的选项)是通过catch rest函数(user_catch_rest_hndl)捕获一个不可连接的广告的结尾。你可以把下面的代码放到函数user_peripheral.c中:

案例GAPM_CMP_EVT:

Struct gapm_cmp_evt const *msg_param = (Struct gapm_cmp_evt const *)(param);
开关(msg_param - >操作)

案例GAPM_ADV_NON_CONN:
user_app_adv_start ();//或任何你想在完成后
打破;

默认值:
打破;
}打破;

由于MT_dialog

ciano
离线
最后看到:3周21小时前
加入:2014-10-03 08:13
谢谢你的对话框中,

谢谢你的对话框中,

我使用了第二种正确的解决方案,效果非常好。
我实际上也在考虑使用“app_process_catch_rest_cb”,所以你的回答非常有帮助。
我也选择了第二个选项,因为我不想“劫持”SDK,添加用户代码。通过这种方式升级SDK更容易。

最好的问候,
Ciano霜
丹麦

主题锁定