亲爱的对话框,
我开始使用新的SDK 5系列。
我想要动态更改广告数据,我有一个“ble_app_peripheral”的示例,它有效,但像往常一样,我有一个小的扭曲。
我想在此配置中广播非连接广告:
static const struct ander_nonfiguration 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 = 0x7,
};
static const enum gap_adv_mode user_non_connectable_advertise_mode = gap_broadcaster_mode;
此处的重要问题:我正在使用GAP_BROODCAST_MODE。
现在我想在你的榜样“ble_app_peripheral”之后继续,它正在使用“user_callback_config.h”中的回调配置来重新启动广告,但我无法获得回调函数工作:
.app_on_adv_undirect_complete = user_app_add_undirect_complete,
.app_on_adv_direct_complete = null,
我的问题是:任何回调地图是否完成了上述广告的完整?
此致,
Ciano Frost.
丹麦
设备:
嗨Ciano,
否不存在用于捕获非可连接广告的结束的回调。但是你可以:
1-option是最难的,你可以放置这个“案例GAPM_ADV_NON_CONN:“在app_task.c中上方的”案例GAPM_ADV_UNDIRECT“中的”填充“中的”CAPM_CMP_EVT_HANDLER()中,并使用无向广告回调来获取不可连接的广告的结束。
2 - 选项(适当的一个)是通过CATCH REST功能(User_Catch_Rest_hndl)捕获非可连接广告的结束。您可以将以下代码放在user_peripher.cl函数中:
案例GAPM_CMP_EVT:
{
struct gapm_cmp_evt const * msg_param =(结构gapm_cmp_evt const *)(param);
开关(MSG_PARAM->操作)
{
案例GAPM_ADV_NON_CONN:
user_app_adv_start();//完成后或任何您想要的内容
休息;
默认:
休息;
} 休息;
}
谢谢mt_dialog.
谢谢对话框,
我使用了第二个和适当的解决方案,它运作良好。
我实际上还在研究使用“app_process_catch_rest_cb”,因此您的答案非常有用。
我也选择了第二个选项,因为我不想通过添加Usercode来“劫持”SDK。升级SDK以这种方式更简单。
此致,
Ciano Frost.
丹麦