コード例 #1
0
VOS_VOID MSG_GetRetrySendDomain(
    MN_MSG_SEND_DOMAIN_ENUM_U8          enHopeSendDomain,
    MN_MSG_SEND_DOMAIN_ENUM_U8         *penSendDomain
)
{
    /* 此处修改:
       修改前: 只有CS域有重发功能,PS域不存在此功能
       修改后: 支持在CS域和PS域重发 */
    *penSendDomain = MN_MSG_SEND_DOMAIN_NO;

    if ((MN_MSG_SEND_DOMAIN_CS == enHopeSendDomain)
     || (MN_MSG_SEND_DOMAIN_CS_PREFERRED == enHopeSendDomain)
     || (MN_MSG_SEND_DOMAIN_PS_PREFERRED == enHopeSendDomain))
    {
        MN_MSG_GetCurSendDomain(MN_MSG_SEND_DOMAIN_CS, penSendDomain);
    }

    if (MN_MSG_SEND_DOMAIN_NO != *penSendDomain)
    {
        return;
    }

    if ((MN_MSG_SEND_DOMAIN_PS == enHopeSendDomain)
     || (MN_MSG_SEND_DOMAIN_CS_PREFERRED == enHopeSendDomain)
     || (MN_MSG_SEND_DOMAIN_PS_PREFERRED == enHopeSendDomain))
    {
        MN_MSG_GetCurSendDomain(MN_MSG_SEND_DOMAIN_PS, penSendDomain);
    }

    return;
}
コード例 #2
0
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;
}