看feature Phone的手机代码也看了一段时间了,今天就写以下这几天看的效果和对代码流程的跟踪与理解:
首先说说发短信的流程:
Mmi_Sms.c
Writesms LK
Writesmsoption LK
Inputnum LK
Sendoption LK
If(sendsingle)
Popup
g_taMmiSmsGroupSend.baNum[0](BCD)2baSmsNum(char)
BLApi.c
BL_SMSLOW_SendMsgReq()
firstOctet = mmiSmsBuildMoFirstOctet(repPathOn, HeaderOn, stusRepOn);
mmiSys_SendDualSIMAtCmd("AT+CSMP=%u,255,0,%L",AT_PLUS_CSMP,sys);
baSmsNum /pNum(char)2mmiSmsSendSrvcStatus.num(BCD),
Mmisysfnc.c
mmiSmsSend_CMGS()
mmiSys_SendDualSIMAtCmd("AT+CMGS=\"%s\",145 ,AT_PLUS_CMGS);
mmi_main()
mmi_main_SigHandler()
(mmiSigHandlerBasicTable[sigId])( sigId, sigBody );
mmi_main_SigHandler_AT_CMD_CNF,
mmiSysAtCmdParse();
Mmisys.c
mmiSys_ATResNotifyNonTb();
Mmisysfnc.c
case AT_PLUS_CMGS:mmiSmsCmgsRspNonTbHandler();
copy mmiSmsSendSrvcStatus.data2waData;
strnToHex(waData2hexMsg);
mmi_SendDualSIMAtCmdReq();
mmi_main()
mmi_main_SigHandler()
(mmiSigHandlerBasicTable[sigId])( sigId, sigBody );
mmi_main_SigHandler_AT_CMD_CNF,
Mmisys.c
mmiSysAtCmdParse();
Mmisysety.c
mmiSys_ATResNotify();
Mmisysfnc.c
case AT_PLUS_CMGS: mmiSmsCmgsRspHandler();
mmiSmsSendComf();
if (IsFull(ME_ALL)) popup
else popup
MMI_Sms_SaveRec2Box();
mmi_main()
mmi_main_SigHandler()
(mmiSigHandlerBasicTable[sigId])( sigId, sigBody );
mmi_main_SigHandler_AT_CMD_CNF,
Mmisysety.c
mmiSysAtCmdParse();
Mmisys.c
mmiSms_AtRspHandler;
Mmisysfnc.c
atEvt == AT_PLUS_CDS:
mmiSms_AtCdsHandler; atEvt = EVT_UNKNOWN;
mmiUtl_AtParamParcser(stResp);
if(statusRepon)
Phonebook_SearchNameByNum(rcvAdrs, bName);
MMI_Phonebook_NameTransfer2DispBuf(moName);
If(strLen(moName))
mmiUtl_sprintf16(g,,deliverRPT,moName);
else
mmiUtl_sprintf16(g,,deliverRPT,rcvAdrs);
popup(g);