VOS_BOOL USIMM_IsTestCard_Instance(MODEM_ID_ENUM_UINT16 enModemID) { if (MODEM_ID_0 == enModemID) { USIMM_NORMAL_LOG("USIMM_IsTestCard_Instance: call USIMM_IsTestCard"); return USIMM_IsTestCard(); } #if (FEATURE_MULTI_MODEM == FEATURE_ON) if (MODEM_ID_1 == enModemID) { USIMM_NORMAL_LOG("USIMM_IsTestCard_Instance: call I1_USIMM_IsTestCard"); return I1_USIMM_IsTestCard(); } #endif USIMM_ERROR_LOG("USIMM_IsTestCard_Instance: Para Is Error"); return VOS_FALSE; }
VOS_VOID MTC_RcvRrcAreaLostInd(VOS_VOID * pMsg) { MODEM_ID_ENUM_UINT16 enModemId; RRC_MTC_AREA_LOST_IND_STRU *pstAreaLostInd = VOS_NULL_PTR; MTC_MODEM_POWER_STATE_ENUM_UINT8 enModem1PowerState; MTC_OPERATOR_CUST_SOLUTION_ENUM_UINT8 enOperatorCustSolution; VOS_BOOL enTestCardFlg; MTC_PS_TRANSFER_CTX_STRU *pstPsTransferCtx = VOS_NULL_PTR; pstPsTransferCtx = MTC_GetPsTransferCtxAddr(); /* GCF测试时不需要启动PSTRANSFER流程,否则导致GCF测试部不通过 */ enTestCardFlg = USIMM_IsTestCard(); if (VOS_TRUE == enTestCardFlg) { return; } pstAreaLostInd = (RRC_MTC_AREA_LOST_IND_STRU*)pMsg; enModemId = VOS_GetModemIDFromPid(pstAreaLostInd->stMsgHeader.ulSenderPid); /* 仅处理Modem0发送的丢网指示 */ if (enModemId != MODEM_ID_0) { MTC_ERROR1_LOG("MTC_RcvRrcAreaLostInd: Err ModemId ", enModemId); return; } /* 未开启PS域迁移策略,只记录次数 */ if (MTC_PS_TRANSFER_NONE == MTC_GetPsTransferCfg()) { /* 可维可测: 记录接收到丢网指示的次数 */ MTC_DEBUG_RcvRrcAreaLostInd(pstAreaLostInd->stMsgHeader.ulSenderPid); return; } /* 运营商定制方案SVLTE或C+L时需要上报AT丢网指示 */ enOperatorCustSolution = MTC_GetOperatorCustSolution(); enModem1PowerState = MTC_GetModemPowerState(MODEM_ID_1); /* 当接入层在业务态或idle态丢网且Modem1开机且卡有效时,上报PS域迁移指示 */ if ((VOS_TRUE == MTC_GetModemUsimValidFlag(enModemId)) && (((MTC_OPERATOR_CUST_CMCC_SVLTE == enOperatorCustSolution) && (MTC_MODEM_POWER_ON == enModem1PowerState)) || (MTC_OPERATOR_CUST_CT_LC == enOperatorCustSolution) )) { if (MTC_PS_TRANSFER_CAUSE_AREA_LOST != pstPsTransferCtx->enReportCause) { MTC_SndModem0MtaPsTransferInd(MTC_PS_TRANSFER_CAUSE_AREA_LOST); /* 通知modem0 gmm丢网,gmm记录全局变量后续detach只做一次减少detach时间 */ MTC_SndModem0GmmRrcAreaLostInd(); } } pstPsTransferCtx->enRrcCause = MTC_PS_TRANSFER_CAUSE_AREA_LOST; /* 可维可测: 记录接收到丢网指示的次数 */ MTC_DEBUG_RcvRrcAreaLostInd(pstAreaLostInd->stMsgHeader.ulSenderPid); return; }