分享

mt2503[AT Command]如何通过AT查询SIM卡的ICCID

 一流网络技术 2017-09-13

[Description]

通过AT命令查询SIM卡的ICCID,客制化方法可参考相关文档,这里介绍的是如何获取ICCID的值。


[Solution]

1、MP Branch After 11A1129MP,11B1129MP,可以用AT+ICCID来获取;

2、客制化方法获取ICCID:
MMI层如需读取ICCID,可以通过发message: MSG_ID_MMI_SMU_READ_SIM_REQ,从SIM卡去读FILE_ICCID_IDX。消息中src_mod_id = MOD_MMI; dest_mod_id =MOD_L4C。
同时要注册MSG_ID_MMI_SMU_READ_SIM_RSP 的callback 函数。
注意如果您要获取卡2的ICCID,需发消息到MOD_L4C_2,并使用SetSlaveProtocolEventHandler()来设置响应消息的响应函数。
以下是参考代码:
MMI_BOOL mmi_lmc_get_iccid_rsp((void *inMsg, int mod_dest, void *Message))
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_smu_read_sim_rsp_struct *iccid_data;
kal_uint8 iccid[21];
U8 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
iccid_data = (mmi_smu_read_sim_rsp_struct*) inMsg;
mmi_frm_clear_protocol_event_handler(MSG_ID_MMI_SMU_READ_SIM_RSP,
mmi_lmc_get_iccid_rsp);
if (iccid_data->result.flag == L4C_SUCCESS)
{
kal_prompt_trace(MOD_MMI, "Read iccid success!");
for (i = 0; i < iccid_data->length; i++)
{
iccid[i * 2] = 0x30 + (*(iccid_data->data + i) & 0x0F);
iccid[i * 2 + 1] = 0x30 + ((*(iccid_data->data + i) & 0xF0) >> 4);
}
iccid[20] = 0;
kal_prompt_trace(MOD_MMI, "ICCID:%s", iccid);
}
else
{
kal_prompt_trace(MOD_MMI, "read iccid fail!");
}
return MMI_FALSE;
}
void mmi_lmc_get_iccid_req(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_smu_read_sim_req_struct *dataPtr;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_frm_set_protocol_event_handler(MSG_ID_MMI_SMU_READ_SIM_RSP,
(PsIntFuncPtr)mmi_lmc_get_iccid_rsp, MMI_TRUE);
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = MSG_ID_MMI_SMU_READ_SIM_REQ;
dataPtr = (mmi_smu_read_sim_req_struct*)
OslConstructDataPtr(sizeof(mmi_smu_read_sim_req_struct));
dataPtr->file_idx = (U8) FILE_ICCID_IDX;
dataPtr->para = 0;
dataPtr->length = 0x0a;
Message.oslDataPtr = (oslParaType*) dataPtr;
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}

 

本文转载自一牛网论坛MTK硬件

原文地址:http://bbs./thread-453664-1-1.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约