MTK to obtain base station information

1. First of all should be opened this Marco __NBR_CELL_INFO__ 


2. Write two functions similar to the following
// 


void mmi_Cell_Info_start_req(module_type mod_id)
{
    mmi_frm_set_protocol_event_handler(MSG_ID_L4C_NBR_CELL_INFO_REG_CNF,mmi_Cell_Info_parsing_data,
                 MMI_FALSE);
    mmi_frm_set_protocol_event_handler(MSG_ID_L4C_NBR_CELL_INFO_IND,mmi_Cell_Info_parsing_data,
                 MMI_FALSE);


    mmi_frm_send_ilm(mod_id,MSG_ID_L4C_NBR_CELL_INFO_REG_REQ, NULL, NULL);


return;
}


//
void mmi_Cell_Info_stop_req(module_type mod_id)
{
    mmi_frm_clear_protocol_event_handler(MSG_ID_L4C_NBR_CELL_INFO_IND,
                            (PsIntFuncPtr)mmi_Cell_Info_parsing_data);
    mmi_frm_clear_protocol_event_handler(MSG_ID_L4C_NBR_CELL_INFO_REG_CNF,
                            (PsIntFuncPtr)mmi_Cell_Info_parsing_data);


    mmi_frm_send_ilm(mod_id,MSG_ID_L4C_NBR_CELL_INFO_DEREG_REQ, NULL, NULL);


return;
}


3. Response function
void mmi_Cell_Info_parsing_data(void *info, int mod_src)
{
l4c_nbr_cell_info_ind_struct* cell_info;
int valid_cell;
int i=0;
int j;


MMI_CELLS_ID_INFOR cells_id_infor;
memset(&cells_id_infor,0,sizeof(cells_id_infor));

cell_info = (l4c_nbr_cell_info_ind_struct *)info;




//Service cell information
cells_id_infor.cells[0].mcc=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.serv_info.gci.mcc;
cells_id_infor.cells[0].mnc=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.serv_info.gci.mnc;
cells_id_infor.cells[0].lac=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.serv_info.gci.lac;
cells_id_infor.cells[0].cell_id=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.serv_info.gci.ci;
cells_id_infor.total++;
cells_id_infor.cell_id_num[0] = 1;


// neighbor cell information : PLMN, Cell ID, LAC, BSIC, Rx Level, Arfcn
if (cell_info->is_nbr_info_valid)
{
   for (j = 0; j < cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_num; j++)
   {
       //g_mmi_nbr_neighbor_cell_info[mod_src-MOD_L4C][j].mcc = cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.mcc;
       //g_mmi_nbr_neighbor_cell_info[mod_src-MOD_L4C][j].mnc = cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.mnc;
       //g_mmi_nbr_neighbor_cell_info[mod_src-MOD_L4C][j].lac = cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.lac;
       //g_mmi_nbr_neighbor_cell_info[mod_src-MOD_L4C][j].cell_id = cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.ci;
       if (cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].nbr_meas_rslt_index>= cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_meas_rslt.nbr_meas_num)
           continue;
//Information of the neighboring cells
{
i++;
cells_id_infor.cells[i].mcc=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.mcc;
cells_id_infor.cells[i].mnc=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.mnc;
cells_id_infor.cells[i].lac=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.lac;
cells_id_infor.cells[i].cell_id=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].gci.ci;

cells_id_infor.cells[i].rxlev=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_meas_rslt.nbr_cells[cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].nbr_meas_rslt_index].rxlev;
cells_id_infor.cells[i].arfcn=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_meas_rslt.nbr_cells[cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].nbr_meas_rslt_index].arfcn;
cells_id_infor.cells[i].bsic=cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_meas_rslt.nbr_cells[cell_info->ps_nbr_cell_info_union.gas_nbr_cell_info.nbr_cell_info[j].nbr_meas_rslt_index].bsic;


cells_id_infor.total++;
cells_id_infor.cell_id_num[i] = i + 1;


}
   }
}


          // Here is the preservation of access to the data, according to their actual situation
//Em_SetCellsIdInfor(&cells_id_infor);


return;

}




4.Method
//enable
mmi_Cell_Info_start_req(MOD_L4C);
//disable
mmi_Cell_Info_stop_req(MOD_L4C);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值