6626更新广播数据内容

yangzh · 10次点击 · 6天前

6626更新广播数据内容,在不停止广播的情况下,以下是示例


1.广播数据不能带扫描回应包 

void app_adv_init(void)
{
    ob_event_callback_reg(app_adv_event_cb);

    adv_param.own_addr_type = OB_ADV_ADDR_TYPE_RANDOM;
    adv_param.prim_phy = OB_ADV_PHY_1M;
    adv_param.secd_phy = OB_ADV_PHY_1M;
    adv_param.tx_pwr = 0;
    adv_param.filter_policy = OB_ADV_FILTER_NONE;
    adv_param.prim_ch_map = OB_ADV_CH_ALL;
    adv_param.prim_intv_min = 0x960;//0x40;
    adv_param.prim_intv_max = 0x960;//0x80;
    adv_param.local_addr = local_addr;
    adv_param.peer_addr = &peer_addr;
    // adv_param.adv_properties = OB_ADV_PROP_EXT_CONN_NONSCAN;
    // adv_param.adv_properties = OB_ADV_PROP_LEGACY_DIRECT_IND_HIGH;
    // adv_param.adv_properties = OB_ADV_PROP_EXT_NONCONN_SCAN;
    adv_param.adv_properties = OB_ADV_PROP_LEGACY_IND;
    ob_gap_adv_start(0, &adv_param, &adv_data, NULL);//无scan_rsp_data数据
}

2.定时更新广播数据,默认2s定时器

      

extern ob_data_t adv_data;

/**
 *******************************************************************************
 * @brief  evt timer 0 handler
 *
 * @param[in] timer  timer
 * @param[in] param  param
 *******************************************************************************
 */
static void evt_timer_0_handler(evt_timer_t *timer, void *param)
{
    OM_LOG_DEBUG("evt timer: %d\n", PMU_TIMER_TICK2MS(drv_pmu_timer_cnt_get()));
   
    adv_data.data[9] += 1;//测试用更新的字节
    ob_gap_adv_start(0, 0, &adv_data, NULL);//更新广播内容
    OM_LOG_DEBUG("sdata[9]=%x",adv_data.data[9]);
}


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

请先登录网站