VOS_VOID    NAS_MMC_SndResumeRsp(
    NAS_MML_NET_RAT_TYPE_ENUM_UINT8     enRat
)
{
    switch(enRat)
    {
        case NAS_MML_NET_RAT_TYPE_WCDMA:
            /* 发送RRMM_RESUME_RSP */
            NAS_MMC_SndAsResumeRsp(WUEPS_PID_WRR);

#if (FEATURE_ON == FEATURE_LTE)
            /* 通知LMM恢复结果 */
            if (NAS_MML_NET_RAT_TYPE_LTE == NAS_MMC_GetSuspendOrigenRatType(NAS_MMC_GetCurrEntryMsg()))
            {
                NAS_MMC_SndLmmResumeNotify();
            }

#endif
            break;

        case NAS_MML_NET_RAT_TYPE_GSM:
            NAS_MMC_SndAsResumeRsp(UEPS_PID_GAS);

#if (FEATURE_ON == FEATURE_LTE)
            if (NAS_MML_NET_RAT_TYPE_LTE == NAS_MMC_GetSuspendOrigenRatType(NAS_MMC_GetCurrEntryMsg()))
            {
                NAS_MMC_SndLmmResumeNotify();
            }

#endif
            break;

#if (FEATURE_ON == FEATURE_LTE)
        case NAS_MML_NET_RAT_TYPE_LTE:
            break;
#endif

        default:
            NAS_WARNING_LOG(WUEPS_PID_MMC, "NAS_MMC_SndResumeRsp:Unexpected Rat Type!");
            break;
    }

    return;
}
예제 #2
0
VOS_UINT32 NAS_MMC_RcvGasResumeInd_InterSysHo_WaitAsResumeInd(
    VOS_UINT32                          ulEventType,
    struct MsgCB                       *pstMsg
)
{
    RRMM_RESUME_IND_ST                 *pstResumeIndMsg = VOS_NULL_PTR;
    NAS_MML_NET_RAT_TYPE_ENUM_UINT8     enOldNtType;

    /* 停止MMC_WAIT_AS_RESUME_IND_TIMER */
    NAS_MMC_StopTimer(TI_NAS_MMC_WAIT_AS_RESUME_IND);

    if ( NAS_MML_NET_RAT_TYPE_GSM != NAS_MML_GetCurrNetRatType())
    {
        /* 清除小区信息以及信号量 */
        NAS_MML_InitRssiValue(NAS_MML_GetCampCellInfo());
    }


    NAS_MML_SetCurrNetRatType(NAS_MML_NET_RAT_TYPE_GSM);


    /* 生成RESUME消息 */
    pstResumeIndMsg                 = (RRMM_RESUME_IND_ST *)pstMsg;

    enOldNtType     = NAS_MMC_GetSuspendOrigenRatType(NAS_MMC_GetCurrEntryMsg());

    /* GU之间的切换,CS信令连接存在 */
    if (NAS_MML_NET_RAT_TYPE_WCDMA == enOldNtType)
    {    
        NAS_MMC_SetCsSigExistFlag_InterSysHo(VOS_TRUE);
    }
    
    /* 将resume 的结果包含在GMM_MMC_RESUME_INd 消息中,并向GMM发送 */
    NAS_MMC_SndMmResumeInd_Handover(pstResumeIndMsg, NAS_MMC_GetCsSigExistFlag_InterSysHo());
    NAS_MMC_SetResumeRspFlag_InterSysHo(NAS_MMC_GMM_RESUME_RSP_FLG);
    NAS_MMC_SetCsSigExistFlag_InterSysHo(VOS_FALSE);

    /* 将resume 的结果包含在MM_MMC_RESUME_IND消息中,并向MM发送 */
    NAS_MMC_SndGmmResumeInd_Handover(pstResumeIndMsg, NAS_MMC_GetPsSigExistFlag_InterSysHo());
    NAS_MMC_SetResumeRspFlag_InterSysHo(NAS_MMC_MM_RESUME_RSP_FLG);    
    NAS_MMC_SetPsSigExistFlag_InterSysHo(VOS_FALSE);

    /* 迁入到NAS_MMC_INTER_SYS_HO_STA_WAIT_MM_RESUME_RSP状态 */
    NAS_MMC_FSM_SetCurrState(NAS_MMC_INTER_SYS_HO_STA_WAIT_MM_RESUME_RSP);

    NAS_MMC_StartTimer(TI_NAS_MMC_WAIT_MM_RESUME_RSP, TI_NAS_MMC_WAIT_MM_RESUME_RSP_LEN);

    return VOS_TRUE;
}