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;
}
Пример #2
0
VOS_VOID MTC_InitIntrusionCtx(VOS_VOID)
{
    VOS_UINT32                          ulRet;
    MTC_INTRUSION_CTX_STRU             *pstMtcIntrusionCtx = VOS_NULL_PTR;

    pstMtcIntrusionCtx = MTC_GetIntrusionCtxAddr();

    /* 初始化上下文 */
    PS_MEM_SET(pstMtcIntrusionCtx, 0, sizeof(MTC_INTRUSION_CTX_STRU));

    /* 读取NV项 */
    ulRet = NV_Read(en_NV_Item_RF_INTRUSION_CFG,
                    &pstMtcIntrusionCtx->stIntrusionCfg,
                    sizeof(MTC_NV_RF_INTRUSION_CFG_STRU));
    if (VOS_OK != ulRet)
    {
        MTC_WARNING_LOG("MTC_InitIntrusionCtx: Read Nv Fail.");
    }

    MTC_SetNotchEnalbeFlag(PS_FALSE);

    MTC_SetNarrowDcsEnalbeFlag(PS_FALSE);

    MTC_SetTlRfCtrlEnalbeFlag(PS_FALSE);

    MTC_SetRseCfgValue(PS_FALSE);

    return;
}
VOS_VOID MTC_TlRfCtrlModemPowerStateChange(
    MODEM_ID_ENUM_UINT16                enModemId,
    MTC_MODEM_POWER_STATE_ENUM_UINT8    enPowerState
)
{
    /* 主卡关机场景 */
    if ((MODEM_ID_0 == enModemId) && (MTC_MODEM_POWER_OFF == enPowerState))
    {
        MTC_ProcTlRfCtrl(MTC_GetModemSerCellBandInfo(MODEM_ID_0));
        return;
    }

    /* 副卡开机场景 */
    if ((MODEM_ID_1 == enModemId) && (MTC_MODEM_POWER_ON == enPowerState))
    {
        MTC_ProcTlRfCtrl(MTC_GetModemSerCellBandInfo(MODEM_ID_0));
        return;
    }

    /* 副卡关机场景 */
    if ((MODEM_ID_1 == enModemId) && (MTC_MODEM_POWER_OFF == enPowerState))
    {
        MTC_SetTlRfCtrlEnalbeFlag(PS_FALSE);
        return;
    }

    return;
}
VOS_VOID MTC_ProcB39B32Intrusion(VOS_VOID)
{
    PS_BOOL_ENUM_UINT8                  ulStrategyRet;
    PS_BOOL_ENUM_UINT8                  enEnableFlag;

    /* 判断裁决结果与之前是否一致,如果一样,不再发送消息 */
    enEnableFlag    = MTC_GetTlRfCtrlEnalbeFlag();
    ulStrategyRet   = MTC_ProcB39B32IntrusionStrategy();
    if (enEnableFlag == ulStrategyRet)
    {
        return;
    }

    MTC_SetTlRfCtrlEnalbeFlag(ulStrategyRet);
    MTC_SndI1GasRrcTdsLteRfCtrlInd(ulStrategyRet);

    return;
}