6626 广播指定次数的广播包

wen sir · 217次点击 · 5个月前

在一些特定场合或者测试要求,需要送特定数量的广播包,6626实现方式之一,利用RF事件回调进行计数。



//-----------


unsigned adv_event_counter = 0;
void  bb_frame_handle(bool ongoing)
{
    if (ongoing)
    {
        OM_LOG_DEBUG("ADV cntter =%d \r\n", adv_event_counter);
        if (adv_event_counter)
        {
            adv_event_counter--;
            if (adv_event_counter == 0)
            {
                app_adv_stop(0);
            }
        }
    }

}


//当然,还要加一些状态区分判断 ,如连接时,不应该计入广播包


在开启广播前,注册RF回调,并设置期望的广播次数。

......... 

  __enable_irq();

    adv_event_counter = 10; //设定广播次数
    obc_bb_frame_ongoing_callback_register(bb_frame_handle); //注册RF事件回调

    user_ads_set(true); //开启广播

........

    while (1)
    {
        evt_schedule();
        OM_CRITICAL_BEGIN();
        if (evt_get_all() == 0)
        {
            pm_power_manage();
        }
        OM_CRITICAL_END();
    }



输出Log

image.png


空中包可见,进行了10 轮/次的广播包发射。

image.png

被收藏 0  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站