bigbaicai

芯方式是以半导体人、电子工程师等电子行业相关领域从业人员为核心的知识经验学习、分享、交流社群。 凭借开放、合作、共赢的运营理念,聚集了来自国内外知名院校和顶尖科技公司的半导体人、电子工程师。 我们致力于营造专业、认真、有温度的分享交流环境,将高质量的内容和方案成规模地生产和分享,帮助个人和团队在芯方式找到有价值的Key。 http://www.icfans.com/

获取Cell Id实例

0
阅读(1198)

[DESCRIPTION]

如何获取Cell ID.

[SOLUTION]来自半导体社区

1.获取cell id,请参看如下代码:

/* Start cell id process*/

void mmi_start_get_cell_id(void)

{

SetProtocolEventHandler(mmi_em_update_rsp_hdlr, MSG_ID_MMI_EM_UPDATE_RSP);

SetProtocolEventHandler(mmi_em_status_ind_hdlr, MSG_ID_MMI_EM_STATUS_IND);

}

/* Send start request*/

void mmi_send_em_update_req(void)

{

S32 i;

MYQUEUE Message;

mmi_em_update_req_struct *update_req;

Message.oslMsgId = MSG_ID_MMI_EM_UPDATE_REQ;

update_req = OslConstructDataPtr(sizeof(mmi_em_update_req_struct));

/* All OFF*/

for(i = 0; i < EM_INFO_REQ_NUM; i++)

{

update_req->info_request[i] = EM_OFF;

}

/* LAI ON*/

update_req->info_request[RR_EM_LAI_INFO] = EM_ON;

Message.oslDataPtr = (oslParaType*) update_req;

Message.oslPeerBuffPtr = NULL;

Message.oslSrcId = MOD_MMI;

Message.oslDestId = MOD_L4C;

OslMsgSendExtQueue(&Message);

}

/* Here check if start ok*/

void mmi_em_update_rsp_hdlr(void *inMsg)

{

mmi_em_update_rsp_struct *rsp_p = inMsg;

if (rsp_p->result)

{

/* Start Ok*/

}

else

{

/* Start fail, notify if needed*/

}

}

/* Receive info*/

void mmi_em_status_ind_hdlr(void *info)

{

mmi_em_status_ind_struct *msg = (mmi_em_status_ind_struct*) info;

rr_em_lai_info_struct *data_ptr;

kal_uint16 mm_pdu_len;

mmi_em_rr_process_logs(msg->em_info, msg->info);

if (msg->em_info == RR_EM_LAI_INFO)

{

data_ptr = (rr_em_lai_info_struct*) get_pdu_ptr(msg->info, &mm_pdu_len);

/* Cell id is in data_ptr*/

}

free_peer_buff(msg->info);

}

2.要获取cell id,可通过发送MSG_ID_MMI_EM_UPDATE_REQ来获得,网络回来的消息为

MSG_ID_MMI_EM_UPDATE_RSP,MSG_ID_MMI_EM_STATUS_IND,可自行实现这两个消息的处理函数,如上面

mmi_start_get_cell_id中注册的两个处理函数mmi_em_update_rsp_hdlr,mmi_em_status_ind_hdlr;其中前者为提示

请求是否发送成功,为不影响原来工程模式的处理,可将原来此消息的处理函数EngineerModeStartRes中的内容拿过来

,此处不想显示的话,可以做特殊判断处理;后者则为返回的所需的信息;

3.要想在获取cell id后停止底层发送MSG_ID_MMI_EM_STATUS_IND消息,可以再次发送MSG_ID_MMI_EM_UPDATE_REQ,并

将update_req->info_request全部置为EM_OFF。


ICfans