VOS_VOID MTC_RcvTafCsSrvInfoInd(VOS_VOID *pMsg) { VOS_UINT32 ulPid; MODEM_ID_ENUM_UINT16 enModemId; TAF_MTC_CS_SERVICE_INFO_IND_STRU *pstCsSrvInfo = VOS_NULL_PTR; MTC_CS_SERVICE_STATE_ENUM_UINT8 enCsSrvStateOld; MTC_CS_SERVICE_STATE_ENUM_UINT8 enCsSrvStateNew; MTC_CFG_ENUM_UINT8 enIntrusionCfg; pstCsSrvInfo = (TAF_MTC_CS_SERVICE_INFO_IND_STRU *)pMsg; ulPid = pstCsSrvInfo->stMsgHeader.ulSenderPid; enIntrusionCfg = MTC_GetIntrusionCfg(); /* 根据 Pid获取modem ID */ enModemId = VOS_GetModemIDFromPid(ulPid); if (enModemId >= MODEM_ID_BUTT) { MTC_ERROR_LOG("MTC_RcvMmaPowerStateInd: Modem ID Err."); return; } /* 先获取原CS域服务状态 */ enCsSrvStateOld = MTC_GetModemCsSrvExistFlg(enModemId); /* 更新modem 信息中CS域业务状态 */ MTC_SetModemCallSrvExistFlg(enModemId, pstCsSrvInfo->ucCallSrvExistFlg); MTC_SetModemSmsSrvExistFlg(enModemId, pstCsSrvInfo->ucSmsSrvExistFlg); MTC_SetModemSsSrvExistFlg(enModemId, pstCsSrvInfo->ucSsSrvExistFlg); /* 在获取当前CS域服务状态 */ enCsSrvStateNew = MTC_GetModemCsSrvExistFlg(enModemId); /* 可维可测信息记录 */ MTC_DEBUG_RcvCsSrvInfoInd(enModemId); /* 如果Modem1的CS域服务状态发生变化,且干扰控制特性开启,则需要触发干扰控制裁决 */ if ( (MODEM_ID_1 == enModemId) && (enCsSrvStateNew != enCsSrvStateOld) && (MTC_CFG_ENABLE == enIntrusionCfg) ) { MTC_ProcIntrusionStrategy(); } return; }
VOS_VOID MTC_RcvIntrusionBandInfoInd(VOS_VOID * pMsg) { MODEM_ID_ENUM_UINT16 enModemId; MTC_MODEM_INFO_STRU *pstModemInfo; RRC_MTC_INTRUSION_BAND_INFO_IND_STRU *pstModemBandInfo; MTC_CFG_ENUM_UINT8 enIntrusionCfg; MTC_CFG_ENUM_UINT8 enNotchCfg; #if 0 MTC_CFG_ENUM_UINT8 enNarrowDcsCfg; #endif pstModemBandInfo = (RRC_MTC_INTRUSION_BAND_INFO_IND_STRU*)pMsg; enModemId = VOS_GetModemIDFromPid(pstModemBandInfo->stMsgHeader.ulSenderPid); /* 检查ModemID有效性,并更新本地全局变量 */ if (enModemId >= MODEM_ID_BUTT) { MTC_ERROR1_LOG("MTC_RcvIntrusionBandInfoInd: Err ModemId ", enModemId); return; } pstModemInfo = MTC_GetModemCtxAddr(enModemId); PS_MEM_CPY(&pstModemInfo->stCurBandInfo, &pstModemBandInfo->stCurBandInfo, sizeof(RRC_MTC_MS_BAND_INFO_STRU)); PS_MEM_CPY(&pstModemInfo->stSerCellBandInfo, &pstModemBandInfo->stSerCellBandInfo, sizeof(RRC_MTC_MS_BAND_INFO_STRU)); enIntrusionCfg = MTC_GetIntrusionCfg(); enNotchCfg = MTC_GetNotchCfg(); /* 将当前MTC上下文上报到SDT */ MTC_DEBUG_TraceCtxInfo(); if (MTC_CFG_ENABLE == enIntrusionCfg) { /* 更新频段信息后,触发干扰控制裁决 */ MTC_ProcIntrusionStrategy(); } if (MTC_CFG_ENABLE == enNotchCfg) { /* 更新频段信息后,触发notch控制裁决 */ MTC_ProcNotchStrategy(); } #if 0 /* 判断Narrow band dcs裁决是否使能 */ enNarrowDcsCfg = MTC_GetNarrowBandDcsCfg(); if (MTC_CFG_ENABLE == enNarrowDcsCfg) { /* 执行Narrow band dcs裁决 */ MTC_ProcNarrowDcsStrategy(); } #endif /* TL射频控制开关开启时, 触发干扰控制裁决 */ if ( (MTC_CFG_ENABLE == MTC_GetTlRfCtrlCfg()) && (MODEM_ID_0 == enModemId) ) { MTC_ProcB39B32Intrusion(); } return; }