VOS_VOID AT_InitModemSmsCtx(MODEM_ID_ENUM_UINT16 enModemId) { AT_MODEM_SMS_CTX_STRU *pstSmsCtx = VOS_NULL_PTR; pstSmsCtx = AT_GetModemSmsCtxAddrFromModemId(enModemId); pstSmsCtx->enCmgfMsgFormat = AT_CMGF_MSG_FORMAT_PDU; pstSmsCtx->ucCsdhType = AT_CSDH_NOT_SHOW_TYPE; pstSmsCtx->ucParaCmsr = VOS_FALSE; pstSmsCtx->ucSmsAutoReply = VOS_FALSE; pstSmsCtx->enCsmsMsgVersion = MN_MSG_CSMS_MSG_VERSION_PHASE2_PLUS; /* ME存储状态初始化 */ pstSmsCtx->enMsgMeStorageStatus = MN_MSG_ME_STORAGE_DISABLE; pstSmsCtx->ucLocalStoreFlg = VOS_TRUE; pstSmsCtx->stCnmiType.CnmiModeType = AT_CNMI_MODE_BUFFER_TYPE; pstSmsCtx->stCnmiType.CnmiMtType = AT_CNMI_MT_NO_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiBmType = AT_CNMI_BM_NO_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiDsType = AT_CNMI_DS_NO_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiBfrType = AT_CNMI_BFR_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiTmpModeType = AT_CNMI_MODE_BUFFER_TYPE; pstSmsCtx->stCnmiType.CnmiTmpMtType = AT_CNMI_MT_NO_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiTmpBmType = AT_CNMI_BM_NO_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiTmpDsType = AT_CNMI_DS_NO_SEND_TYPE; pstSmsCtx->stCnmiType.CnmiTmpBfrType = AT_CNMI_BFR_SEND_TYPE; /* 发送域初始化 */ pstSmsCtx->stCgsmsSendDomain.ucActFlg = VOS_FALSE; pstSmsCtx->stCgsmsSendDomain.enSendDomain = MN_MSG_SEND_DOMAIN_CS_PREFERRED; /* 文本短信相关参数初始化 */ /* 27005 3 Text Mode 3.1 Parameter Definitions Message Data Parameters <fo> depending on the command or result code: first octet of 3GPP TS 23.040 [3] SMS-DELIVER, SMS-SUBMIT (default 17), SMS-STATUS-REPORT, or SMS-COMMAND (default 2) in integer format <vp> depending on SMS-SUBMIT <fo> setting: 3GPP TS 23.040 [3] TP-Validity- Period either in integer format (default 167), in time-string format (refer <dt>), or if EVPF is supported, in enhanced format (hexadecimal coded string with double quotes) */ PS_MEM_SET(&(pstSmsCtx->stCscaCsmpInfo), 0, sizeof(pstSmsCtx->stCscaCsmpInfo)); pstSmsCtx->stCscaCsmpInfo.stParmInUsim.ucParmInd = 0xff; pstSmsCtx->stCscaCsmpInfo.stVp.enValidPeriod = MN_MSG_VALID_PERIOD_RELATIVE; pstSmsCtx->stCscaCsmpInfo.stVp.u.ucOtherTime = AT_CSMP_SUBMIT_VP_DEFAULT_VALUE; /* 短信及状态报告读,删除,写,发送或接收存储介质初始化 */ pstSmsCtx->stCpmsInfo.stRcvPath.enStaRptMemStore = MN_MSG_MEM_STORE_SIM; pstSmsCtx->stCpmsInfo.stRcvPath.enSmMemStore = MN_MSG_MEM_STORE_SIM; pstSmsCtx->stCpmsInfo.enMemReadorDelete = MN_MSG_MEM_STORE_SIM; pstSmsCtx->stCpmsInfo.enMemSendorWrite = MN_MSG_MEM_STORE_SIM; /* 短信及状态报告接收上报方式初始化 */ pstSmsCtx->stCpmsInfo.stRcvPath.enRcvSmAct = MN_MSG_RCVMSG_ACT_STORE; pstSmsCtx->stCpmsInfo.stRcvPath.enRcvStaRptAct = MN_MSG_RCVMSG_ACT_STORE; pstSmsCtx->stCpmsInfo.stRcvPath.enSmsServVersion = MN_MSG_CSMS_MSG_VERSION_PHASE2_PLUS; /* 短信或状态报告不存储直接上报PDU的缓存初始化 */ PS_MEM_SET(&(pstSmsCtx->stSmtBuffer), 0x00, sizeof(pstSmsCtx->stSmtBuffer)); /* 短信自动应答缓存数据指针初始化 */ PS_MEM_SET(pstSmsCtx->astSmsMtBuffer, 0x00, (sizeof(AT_SMS_MT_BUFFER_STRU) * AT_SMSMT_BUFFER_MAX)); /* 广播短信的语言选择和不存储直接上报PDU的缓存初始化 */ #if ((FEATURE_ON == FEATURE_GCBS) || (FEATURE_ON == FEATURE_WCBS)) PS_MEM_SET(&(pstSmsCtx->stCbsDcssInfo), 0x00, sizeof(pstSmsCtx->stCbsDcssInfo)); PS_MEM_SET(&(pstSmsCtx->stCbmBuffer), 0x00, sizeof(pstSmsCtx->stCbmBuffer)); #endif return; }
VOS_VOID AT_MNTN_TraceContextData(VOS_VOID) { NAS_AT_SDT_AT_PART_ST *pstSndMsgCB = VOS_NULL_PTR; NAS_AT_OUTSIDE_RUNNING_CONTEXT_PART_ST *pstOutsideCtx = VOS_NULL_PTR; AT_MODEM_SMS_CTX_STRU *pstSmsCtx = VOS_NULL_PTR; MODEM_ID_ENUM_UINT16 enModemId; pstSndMsgCB = (NAS_AT_SDT_AT_PART_ST *)PS_ALLOC_MSG(WUEPS_PID_AT, sizeof(NAS_AT_SDT_AT_PART_ST)); if (VOS_NULL_PTR == pstSndMsgCB) { AT_ERR_LOG("AT_MNTN_TraceContextData:ERROR: Alloc Memory Fail."); return; } pstSndMsgCB->ulReceiverPid = WUEPS_PID_AT; pstSndMsgCB->ulSenderPid = WUEPS_PID_AT; pstSndMsgCB->ulSenderCpuId = VOS_LOCAL_CPUID; pstSndMsgCB->ulReceiverCpuId = VOS_LOCAL_CPUID; pstSndMsgCB->ulLength = sizeof(NAS_AT_OUTSIDE_RUNNING_CONTEXT_PART_ST) + 4; pstSndMsgCB->ucType = AT_PC_REPLAY_MSG; pstSndMsgCB->enMsgID = ID_AT_MNTN_PC_REPLAY_MSG; pstSndMsgCB->aucReserved[0] = 0; pstSndMsgCB->aucReserved[1] = 0; pstSndMsgCB->aucReserved[2] = 0; for (enModemId = 0; enModemId < MODEM_ID_BUTT; enModemId++) { pstSmsCtx = AT_GetModemSmsCtxAddrFromModemId(enModemId); pstOutsideCtx = &pstSndMsgCB->astOutsideCtx[enModemId]; pstOutsideCtx->gucAtCscsType = gucAtCscsType; pstOutsideCtx->gucAtCsdhType = pstSmsCtx->ucCsdhType; pstOutsideCtx->g_OpId = g_OpId; pstOutsideCtx->g_enAtCsmsMsgVersion = pstSmsCtx->enCsmsMsgVersion; pstOutsideCtx->g_enAtCmgfMsgFormat = pstSmsCtx->enCmgfMsgFormat; PS_MEM_CPY(&pstOutsideCtx->gstAtCnmiType, &(pstSmsCtx->stCnmiType), sizeof(pstSmsCtx->stCnmiType)); PS_MEM_CPY(&pstOutsideCtx->g_stAtCgsmsSendDomain, &(pstSmsCtx->stCgsmsSendDomain), sizeof(pstSmsCtx->stCgsmsSendDomain)); PS_MEM_CPY(&pstOutsideCtx->g_stAtCscaCsmpInfo, &(pstSmsCtx->stCscaCsmpInfo), sizeof(pstSmsCtx->stCscaCsmpInfo)); PS_MEM_CPY(&pstOutsideCtx->g_stAtCpmsInfo, &(pstSmsCtx->stCpmsInfo), sizeof(pstSmsCtx->stCpmsInfo)); } AT_MNTN_TraceEvent(pstSndMsgCB); PS_FREE_MSG(WUEPS_PID_AT, pstSndMsgCB); return; }