VOS_VOID MN_CALL_CsMtCallFailRecord( NAS_ERR_LOG_CS_MT_CALL_CAUSE_ENUM_U32 enCause ) { NAS_ERR_LOG_CS_MT_CALL_FAIL_EVENT_STRU stCsMtCallFailEvt; VOS_UINT32 ulLength; VOS_UINT16 usLevel; VOS_UINT32 ulIsLogRecord; VOS_UINT32 ulResult; /* 查询对应Alarm Id是否需要记录异常信息 */ usLevel = NAS_GetErrLogAlmLevel(NAS_ERR_LOG_ALM_CS_MT_CALL_FAIL); ulIsLogRecord = TAF_SDC_IsErrLogNeedRecord(usLevel); /* 模块异常不需要记录或异常原因值不需要记录时,不保存异常信息 */ if (VOS_FALSE == ulIsLogRecord) { return; } ulLength = sizeof(NAS_ERR_LOG_CS_MT_CALL_FAIL_EVENT_STRU); /* 填充CS PAGING失败异常信息 */ PS_MEM_SET(&stCsMtCallFailEvt, 0x00, ulLength); NAS_COMM_BULID_ERRLOG_HEADER_INFO(&stCsMtCallFailEvt.stHeader, VOS_GetModemIDFromPid(WUEPS_PID_TAF), NAS_ERR_LOG_ALM_CS_MT_CALL_FAIL, usLevel, VOS_GetSlice(), (ulLength - sizeof(OM_ERR_LOG_HEADER_STRU))); /* 获取当前位置信息 */ NAS_MNTN_OutputPositionInfo(&stCsMtCallFailEvt.stPositionInfo); /* 填写错误原因值 */ stCsMtCallFailEvt.enCause = enCause; /* 将CS MT CALL失败信息发送给ACPU OM模块 */ TAF_SndAcpuOmFaultErrLogInd(&stCsMtCallFailEvt, ulLength); /* 将异常信息写入Buffer中 实际写入的字符数与需要写入的不等则打印异常 */ ulResult = TAF_SDC_PutErrLogRingBuf((VOS_CHAR *)&stCsMtCallFailEvt, ulLength); if (ulResult != ulLength) { NAS_ERROR_LOG(WUEPS_PID_TAF, "MN_CALL_SndAcpuOmCsMtCallFailInd(): Push buffer error."); } /* 可维可测勾包 */ NAS_COM_MntnPutRingbuf(NAS_ERR_LOG_ALM_CS_MT_CALL_FAIL, WUEPS_PID_TAF, (VOS_UINT8 *)&stCsMtCallFailEvt, sizeof(stCsMtCallFailEvt)); return; }
VOS_VOID MN_CALL_CsCallDiscInfoRecord( MN_CALL_ID_T ucCallId, NAS_ERR_LOG_CS_MT_CALL_CAUSE_ENUM_U32 enCause ) { NAS_ERR_LOG_PROCESS_INFO_IND_EVENT_STRU stProcInfoEvent; VOS_UINT32 ulLength; VOS_UINT16 usLevel; VOS_UINT32 ulIsLogRecord; VOS_UINT32 ulResult; /* 查询对应Alarm Id是否需要记录异常信息 */ usLevel = NAS_GetErrLogAlmLevel(NAS_ERR_LOG_ALM_PORCESS_INFO_IND); ulIsLogRecord = TAF_SDC_IsErrLogNeedRecord(usLevel); /* 模块异常不需要记录或异常原因值不需要记录时,不保存异常信息 */ if (VOS_FALSE == ulIsLogRecord) { return; } ulLength = sizeof(NAS_ERR_LOG_PROCESS_INFO_IND_EVENT_STRU); /* 填充过程信息 */ PS_MEM_SET(&stProcInfoEvent, 0x00, ulLength); NAS_COMM_BULID_ERRLOG_HEADER_INFO(&stProcInfoEvent.stHeader, VOS_GetModemIDFromPid(WUEPS_PID_TAF), NAS_ERR_LOG_ALM_PORCESS_INFO_IND, usLevel, VOS_GetSlice(), (ulLength - sizeof(OM_ERR_LOG_HEADER_STRU))); stProcInfoEvent.enInfoType = NAS_ERR_LOG_PROCESS_INFO_TYPE_CS_CALL_DISC; stProcInfoEvent.stDiscInfo.ucCallId = ucCallId; stProcInfoEvent.stDiscInfo.ulCause = enCause; /* 将异常信息写入Buffer中 实际写入的字符数与需要写入的不等则打印异常 */ ulResult = TAF_SDC_PutErrLogRingBuf((VOS_CHAR *)&stProcInfoEvent, ulLength); if (ulResult != ulLength) { NAS_ERROR_LOG(WUEPS_PID_TAF, "MN_CALL_CsCallDiscInfoRecord(): Push buffer error."); } /* 可维可测勾包 */ NAS_COM_MntnPutRingbuf(NAS_ERR_LOG_ALM_PORCESS_INFO_IND, WUEPS_PID_TAF, (VOS_UINT8 *)&stProcInfoEvent, sizeof(stProcInfoEvent)); return; }
VOS_VOID MN_CALL_CsCallErrRecord( MN_CALL_ID_T ucCallId, TAF_CS_CAUSE_ENUM_UINT32 enCause ) { NAS_ERR_LOG_CS_CALL_FAIL_EVENT_STRU stCsCallFailEvent; MN_CALL_INFO_STRU stCallInfo; VOS_UINT32 ulIsLogRecord; VOS_UINT32 ulLength; VOS_UINT32 ulResult; VOS_UINT16 usLevel; /* 查询对应Alarm Id是否需要记录异常信息 */ usLevel = NAS_GetErrLogAlmLevel(NAS_ERR_LOG_ALM_CS_CALL_FAIL); ulIsLogRecord = TAF_SDC_IsErrLogNeedRecord(usLevel); /* 不需要记录或没有异常时,不保存异常信息 */ if ((VOS_FALSE == ulIsLogRecord) || (TAF_CS_CAUSE_SUCCESS == enCause) || (TAF_CS_CAUSE_CC_NW_NORMAL_CALL_CLEARING == enCause)) { return; } ulLength = sizeof(NAS_ERR_LOG_CS_CALL_FAIL_EVENT_STRU); /* 填充Cs呼叫失败异常信息 */ PS_MEM_SET(&stCsCallFailEvent, 0x00, ulLength); PS_MEM_SET(&stCallInfo, 0x00, sizeof(stCallInfo)); NAS_COMM_BULID_ERRLOG_HEADER_INFO(&stCsCallFailEvent.stHeader, VOS_GetModemIDFromPid(WUEPS_PID_TAF), NAS_ERR_LOG_ALM_CS_CALL_FAIL, usLevel, VOS_GetSlice(), (ulLength - sizeof(OM_ERR_LOG_HEADER_STRU))); stCsCallFailEvent.ulCcCause = enCause; if (0 == ucCallId) { /* ucCallId为0说明为本地异常,无法在全局变量中获取信息 */ stCsCallFailEvent.ucCallId = ucCallId; stCsCallFailEvent.enCallState = NAS_ERR_LOG_CALL_S_IDLE; stCsCallFailEvent.stDiscDir.ucIsUser = VOS_TRUE; } else { MN_CALL_GetCallInfoByCallId(ucCallId, &stCallInfo); stCsCallFailEvent.ucCallId = stCallInfo.callId; stCsCallFailEvent.enCallState = stCallInfo.enCallState; PS_MEM_CPY(&stCsCallFailEvent.stDiscDir, &stCallInfo.stDiscDir, sizeof(NAS_ERR_LOG_MN_CALL_DISC_DIR_STRU) ); } /* 获取当前位置信息 */ NAS_MNTN_OutputPositionInfo(&stCsCallFailEvent.stPositionInfo); /* 获取当前Usim信息 */ NAS_MMA_OutputUsimInfo(&stCsCallFailEvent.stUsimInfo); stCsCallFailEvent.enRat = TAF_SDC_GetSysMode(); /* 将异常信息写入Buffer中 实际写入的字符数与需要写入的不等则打印异常 */ ulResult = TAF_SDC_PutErrLogRingBuf((VOS_CHAR *)&stCsCallFailEvent, ulLength); if (ulResult != ulLength) { NAS_ERROR_LOG(WUEPS_PID_TAF, "MN_CALL_CsCallErrRecord(): Push buffer error."); } NAS_COM_MntnPutRingbuf(NAS_ERR_LOG_ALM_CS_CALL_FAIL, WUEPS_PID_TAF, (VOS_UINT8 *)&stCsCallFailEvent, sizeof(stCsCallFailEvent)); return; }
VOS_VOID MN_MSG_FailErrRecord(TAF_MSG_ERROR_ENUM_UINT32 enErrorCode) { NAS_ERR_LOG_SMS_MO_FAIL_EVENT_STRU stSmsMoFailEvent; MN_MSG_SEND_DOMAIN_ENUM_U8 enAvailableSendDomain; VOS_UINT32 ulIsLogRecord; VOS_UINT32 ulLength; VOS_UINT32 ulResult; VOS_UINT16 usLevel; /* 查询对应Alarm Id是否需要记录异常信息 */ usLevel = NAS_GetErrLogAlmLevel(NAS_ERR_LOG_ALM_SMS_FAIL); ulIsLogRecord = TAF_SDC_IsErrLogNeedRecord(usLevel); /* 不需要记录时,不保存异常信息 */ if (VOS_FALSE == ulIsLogRecord) { return; } ulLength = sizeof(NAS_ERR_LOG_SMS_MO_FAIL_EVENT_STRU); /* 填写短信发送失败事件信息 */ PS_MEM_SET(&stSmsMoFailEvent, 0x00, ulLength); NAS_COMM_BULID_ERRLOG_HEADER_INFO(&stSmsMoFailEvent.stHeader, VOS_GetModemIDFromPid(WUEPS_PID_TAF), NAS_ERR_LOG_ALM_SMS_FAIL, usLevel, VOS_GetSlice(), (ulLength - sizeof(OM_ERR_LOG_HEADER_STRU))); /* 获取卡状态信息 */ NAS_MMA_OutputUsimInfo(&stSmsMoFailEvent.stUsimInfo); /* 获取位置信息 */ NAS_MNTN_OutputPositionInfo(&stSmsMoFailEvent.stPositionInfo); MN_MSG_OutputSmsMoFailureInfo(enErrorCode, &stSmsMoFailEvent.stMoFail); MN_MSG_GetCurSendDomain(MN_MSG_SEND_DOMAIN_PS, &enAvailableSendDomain); if (MN_MSG_SEND_DOMAIN_PS == enAvailableSendDomain) { stSmsMoFailEvent.enPsStatus = NAS_MNTN_SEND_DOMAIN_STATUS_AVAILABLE; } else { stSmsMoFailEvent.enPsStatus = NAS_MNTN_SEND_DOMAIN_STATUS_UNAVAILABLE; } MN_MSG_GetCurSendDomain(MN_MSG_SEND_DOMAIN_CS, &enAvailableSendDomain); if (MN_MSG_SEND_DOMAIN_CS == enAvailableSendDomain) { stSmsMoFailEvent.enCsStatus = NAS_MNTN_SEND_DOMAIN_STATUS_AVAILABLE; } else { stSmsMoFailEvent.enCsStatus = NAS_MNTN_SEND_DOMAIN_STATUS_UNAVAILABLE; } /* 将异常信息写入Buffer中 实际写入的字符数与需要写入的不等则打印异常 */ ulResult = TAF_SDC_PutErrLogRingBuf((VOS_CHAR *)&stSmsMoFailEvent, ulLength); if (ulResult != ulLength) { NAS_ERROR_LOG(WUEPS_PID_TAF, "MN_MSG_FailErrRecord(): Push buffer error."); } NAS_COM_MntnPutRingbuf(NAS_ERR_LOG_ALM_SMS_FAIL, WUEPS_PID_TAF, (VOS_UINT8 *)&stSmsMoFailEvent, sizeof(stSmsMoFailEvent)); return; }