6225 platform, to obtain the base station information, cell_id and LAI
After the settings are completed under Network Setting> network info in engineering mode,
You can output
<MCC>: 460 <MNC>: 00f <LAC>: 80 184
<Cell_id>: 3424
If you want to write it as an interface, you can call it to return information.
--------------------------------------------------------------------
Find the source code of the engineering mode in engineermodetracer. C.
// Struct
Typedef struct
{
Kal_uint8 MCC [3];
Kal_uint8 MNC [3];
Kal_uint8 LAC [2];
Kal_uint16 cell_id;
Kal_uint8 is_present;
} Mmi_rr_em_lai_info_t;
// Print the Function
Kal_uint8 mmi_em_rr_lai_info_logs (kal_uint8 screen_num, mmi_rr_em_lai_info_t * rr_em_lai_info)
{....}
The function is only used for printing. Search for the function along the output path,
-> Mmi_em_parsing_data (void * info ){...}
-> Setprotocoleventhandler (mmi_em_parsing_data, msg_id_mmi_em_status_ind );
The base station information is transmitted in the info pointer of mmi_em_parsing_data.
Use mmi_rr_em_lai_info_t to perform a strong conversion.
//////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// ///
Mod_as to mod_as_2
{
# Ifdef _ mtk_target __
Myqueue message = {0 };
Mmi_em_start_req_struct * em_start_req;
G_cell_info_funcb = fun;
Message. oslmsgid = msg_id_mmi_em_start_req;
Em_start_req = oslconstructdataptr (sizeof (mmi_em_start_req_struct ));
Em_start_req-> mod_id = mod_as;
Em_start_req-> info_request = rr_em_lai_info;
Message. osldataptr = (oslparatype *) em_start_req;
Message. oslpeerbuffptr = NULL;
Message. oslsrcid = mod_mmi;
If (g_pwr_context.currentservicetype = full_service)
{
Message. osldestid = mod_l4c;
Dw_trace_info ("--------- emstatushandlersp sim1 ");
}
# Ifdef _ mmi_dual_sim_master __
Else if (g_pwr_context_2.currentservicetype = full_service)
{
Message. osldestid = mod_l4c_2;
Dw_trace_info ("--------- emstatushandlersp sim2 ");
}
# Endif
Clearprotocoleventhandler (msg_id_em_start_rsp );
Setprotocoleventhandler (dw_sys_cell_status_ind, msg_id_mmi_em_status_ind );
Oslmsgsendextqueue (& message );
# Else
Fun (, 0 );
# Endif
}
On the MTK platform, I want to obtain the information of the base station, but currently Card 1 is obtained, but card 2 is not (all 0). What is the reason? What should I do?
The Code is as above. I now know that mod_mmi communicates with mod_l4c/mod_l4c_2, but it is obtained through the mod_as module. Is it necessary to change the correct Card 2 to another ID?
There are other methods ....