TAF_CALL_CCWAI_MODE_ENUM_UINT8 TAF_GetCcwaiMode(VOS_VOID) { TAF_CALL_CCWAI_MODE_ENUM_UINT8 enCcwaiMode; enCcwaiMode = TAF_CALL_GetCcwaiMode(); TAF_WARNING_LOG1(WUEPS_PID_TAF, "TAF_GetCcwaiMode ", enCcwaiMode); return enCcwaiMode; }
VOS_VOID TAF_MMA_StopTimer( TAF_MMA_TIMER_ID_ENUM_UINT32 enTimerId ) { TAF_MMA_TIMER_CTX_STRU *pstMmaTimerCtx = VOS_NULL_PTR; VOS_UINT32 i; pstMmaTimerCtx = TAF_MMA_GetTimerCtxAddr(); for (i = 0 ; i < TAF_MMA_MAX_TIMER_NUM ; i++) { if ((TAF_MMA_TIMER_STATUS_RUNING == pstMmaTimerCtx[i].enTimerStatus) && (enTimerId == pstMmaTimerCtx[i].enTimerId)) { break; } } if (i >= TAF_MMA_MAX_TIMER_NUM) { TAF_WARNING_LOG1(WUEPS_PID_MMA,"TAF_MMA_StopTimer:timer already stoped", (VOS_INT32)enTimerId); return; } /* 停止VOS定时器: 当定时器的指针已经为空的时候, 说明其已经停止或者超时 */ if (VOS_NULL_PTR != pstMmaTimerCtx[i].hTimer) { VOS_StopRelTimer(&(pstMmaTimerCtx[i].hTimer)); } pstMmaTimerCtx[i].hTimer = VOS_NULL_PTR; pstMmaTimerCtx[i].enTimerId = TI_TAF_MMA_TIMER_BUTT; pstMmaTimerCtx[i].enTimerStatus = TAF_MMA_TIMER_STATUS_STOP; TAF_MMA_SndOmTimerStatus(TAF_MMA_TIMER_STATUS_STOP, enTimerId, 0); }
VOS_VOID TAF_MMA_StartTimer( TAF_MMA_TIMER_ID_ENUM_UINT32 enTimerId, VOS_UINT32 ulLen ) { TAF_MMA_TIMER_CTX_STRU *pstMmaTimerCtx = VOS_NULL_PTR; VOS_UINT32 i; VOS_UINT32 ulRet; if (0 == ulLen) { TAF_WARNING_LOG1(WUEPS_PID_MMA,"TAF_MMA_StartTimer:timer len is zero!", (VOS_INT32)enTimerId); return; } if (ulLen >= VOS_TIMER_MAX_LENGTH) { ulLen = VOS_TIMER_MAX_LENGTH - 1; } pstMmaTimerCtx = TAF_MMA_GetTimerCtxAddr(); /* 如果缓存队列中该定时器已经启动则直接返回 */ for (i = 0 ; i < TAF_MMA_MAX_TIMER_NUM ; i++) { if ((TAF_MMA_TIMER_STATUS_RUNING == pstMmaTimerCtx[i].enTimerStatus) && (enTimerId == pstMmaTimerCtx[i].enTimerId)) { TAF_WARNING_LOG1(WUEPS_PID_MMA,"TAF_MMA_StartTimer:timer is running!", (VOS_INT32)enTimerId); return; } } for (i = 0 ; i < TAF_MMA_MAX_TIMER_NUM ; i++) { if (TAF_MMA_TIMER_STATUS_STOP == pstMmaTimerCtx[i].enTimerStatus ) { break; } } if (i >= TAF_MMA_MAX_TIMER_NUM) { TAF_WARNING_LOG1(WUEPS_PID_MMA, "TAF_MMA_StartTimer:too many timer", (VOS_INT32)enTimerId); return; } /* 启动定时器 */ ulRet = VOS_StartRelTimer(&(pstMmaTimerCtx[i].hTimer), WUEPS_PID_MMA, ulLen, enTimerId, 0, VOS_RELTIMER_NOLOOP, VOS_TIMER_PRECISION_5); if (VOS_OK != ulRet) { TAF_WARNING_LOG(WUEPS_PID_MMA,"TAF_MMA_StartTimer:VOS_StartRelTimer failed"); return; } pstMmaTimerCtx[i].enTimerId = enTimerId; pstMmaTimerCtx[i].enTimerStatus = TAF_MMA_TIMER_STATUS_RUNING; TAF_MMA_SndOmTimerStatus(TAF_MMA_TIMER_STATUS_RUNING, enTimerId, ulLen); return; }
VOS_VOID TAF_APS_GetCurrentFlowInfo( VOS_UINT8 ucRabId, TAF_DSFLOW_INFO_STRU *pstCurrentFlowInfo ) { CDS_BEARER_DATA_FLOW_STRU stDataFlowInfo; TAF_APS_DSFLOW_STATS_CTX_STRU *pstApsDsFlowCtx; VOS_UINT32 ulIndex; VOS_UINT32 ulCurSysTime; VOS_UINT16 usModemid; if (ucRabId < TAF_APS_RAB_ID_OFFSET) { ucRabId = TAF_APS_RAB_ID_OFFSET; } /* 初始化 */ pstApsDsFlowCtx = TAF_APS_GetDsFlowCtxAddr(); ulIndex = ucRabId - TAF_APS_RAB_ID_OFFSET; /* 如果激活 */ /* 调用CDS API CDS_GetBearerDataFlowInfo获取当前连接流量 */ /* RABID当前流量 = CDS返回的当前连接流量 */ /* 如果未激活 */ /* RABID当前流量 = APS流量统计上下文保存的当前连接流量 */ if (ulIndex >= TAF_APS_MAX_RAB_NUM) { ulIndex = TAF_APS_MAX_RAB_NUM - 1; } /* 获取指定RABID的当前连接流量信息 */ if (VOS_TRUE == pstApsDsFlowCtx->astApsDsFlowStats[ulIndex].ucRabActiveFlag) { /* 流量信息初始化 */ PS_MEM_SET(&stDataFlowInfo, 0, sizeof(CDS_BEARER_DATA_FLOW_STRU)); usModemid = VOS_GetModemIDFromPid(WUEPS_PID_TAF); CDS_GetBearerDataFlowInfo(ucRabId, &stDataFlowInfo, usModemid); /* 刷新流量上下文当前连接流量信息 */ pstCurrentFlowInfo->ulDSReceiveFluxHigh = stDataFlowInfo.ulTotalReceiveFluxHigh; pstCurrentFlowInfo->ulDSReceiveFluxLow = stDataFlowInfo.ulTotalReceiveFluxLow; pstCurrentFlowInfo->ulDSSendFluxHigh = stDataFlowInfo.ulTotalSendFluxHigh; pstCurrentFlowInfo->ulDSSendFluxLow = stDataFlowInfo.ulTotalSendFluxLow; /* 当前连接时间:当前时间-PDP激活时间 */ ulCurSysTime = VOS_GetTick() / PRE_SECOND_TO_TICK; /*与结构体中开始连接时间运算,得到本次连接总时间:*/ if ( VOS_OK != TAF_CalcTime(pstApsDsFlowCtx->astApsDsFlowStats[ulIndex].ulStartLinkTime, ulCurSysTime, &pstCurrentFlowInfo->ulDSLinkTime) ) { /*打印警告信息---计算最后一次DS从开始连接到现在所经历的时间(秒数)时出错:*/ TAF_WARNING_LOG1( WUEPS_PID_TAF, "TAF_APS_UpdateCurrentFlowInfo:WARNING:TAF_CalcTime FAIL! RabId:", ucRabId ); } } else { PS_MEM_CPY(pstCurrentFlowInfo, &pstApsDsFlowCtx->astApsDsFlowStats[ulIndex].stCurrentFlowInfo, sizeof(TAF_DSFLOW_INFO_STRU) ); } return; }