VOS_VOID MTC_ProcTlRfCtrl(CONST RRC_MTC_MS_BAND_INFO_STRU *pstSerCellBandInfo) { /* 副卡关机状态下直接返回 */ if (MTC_MODEM_POWER_OFF == MTC_GetModemPowerState(MODEM_ID_1)) { return; } /* 存在B39频段信息, 通知DSP关闭TL射频的上行发射 */ if (MTC_BAND_CHECK64(*((VOS_UINT64 *)&(pstSerCellBandInfo->aulBandInfo[0])), MTC_BAND_MASK_B39)) { if (PS_FALSE == MTC_GetTlRfCtrlEnalbeFlag()) { MTC_SetTlRfCtrlEnalbeFlag(PS_TRUE); MTC_SndI1GasRrcTdsLteRfCtrlInd(PS_TRUE); } } else { if (PS_TRUE== MTC_GetTlRfCtrlEnalbeFlag()) { MTC_SetTlRfCtrlEnalbeFlag(PS_FALSE); MTC_SndI1GasRrcTdsLteRfCtrlInd(PS_FALSE); } } return; }
PS_BOOL_ENUM_UINT8 MTC_ProcB39B32IntrusionStrategy(VOS_VOID) { RRC_MTC_MS_BAND_INFO_STRU *pstSerCellBandInfo = VOS_NULL_PTR; VOS_UINT32 ulB39Ret; MTC_MODEM_POWER_STATE_ENUM_UINT8 enModem1PowerState; TAF_MTC_SRV_CONN_STATE_ENUM_UINT8 enModem0PsState; TAF_MTC_SRV_CONN_STATE_ENUM_UINT8 enModem1PsState; TAF_MTC_SRV_CONN_STATE_ENUM_UINT8 enModem1CsState; TAF_MTC_SRV_CONN_STATE_ENUM_UINT8 enModem0CsState; /* 初始化 */ enModem0PsState = TAF_MTC_SRV_CONN_STATE_BUTT; enModem0CsState = TAF_MTC_SRV_CONN_STATE_BUTT; enModem1PsState = TAF_MTC_SRV_CONN_STATE_BUTT; enModem1CsState = TAF_MTC_SRV_CONN_STATE_BUTT; ulB39Ret = PS_FALSE; enModem1PowerState = MTC_MODEM_POWER_STATE_BUTT; /* 判断modem1是否开机 */ enModem1PowerState = MTC_GetModemPowerState(MODEM_ID_1); if (MTC_MODEM_POWER_OFF == enModem1PowerState) { /* 打孔方案不生效 */ return PS_FALSE; } /* 判断主卡是否存在B39 */ pstSerCellBandInfo = MTC_GetModemSerCellBandInfo(MODEM_ID_0); ulB39Ret = MTC_BAND_CHECK64(*((VOS_UINT64 *)&(pstSerCellBandInfo->aulBandInfo[0])), MTC_BAND_MASK_B39); if (VOS_FALSE == ulB39Ret) { /* 打孔方案不生效 */ return PS_FALSE; } /* 判断主副卡的业务状态 */ enModem0PsState = MTC_GetPsConnStateInfo(MODEM_ID_0); enModem0CsState = MTC_GetCsConnStateInfo(MODEM_ID_0); enModem1PsState = MTC_GetPsConnStateInfo(MODEM_ID_1); enModem1CsState = MTC_GetCsConnStateInfo(MODEM_ID_1); /* 主卡存在CS,则打孔方案不生效 */ if (TAF_MTC_SRV_EXIST == enModem0CsState) { return PS_FALSE; } /* 副卡CS, 则打孔方案生效 */ if (TAF_MTC_SRV_EXIST == enModem1CsState) { return PS_TRUE; } /* 主卡PS,副卡IDLE, 则打孔方案生效 */ if ( (TAF_MTC_SRV_EXIST == enModem0PsState) && ( (TAF_MTC_SRV_EXIST != enModem1CsState) && (TAF_MTC_SRV_EXIST != enModem1PsState) ) ) { return PS_TRUE; } /* 其它情况打孔方案不生效 */ return PS_FALSE; }