|
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]); } |
