Пример #1
0
VOS_VOID NAS_SMS_SndOmInquireCnfMsg(
    ID_NAS_OM_INQUIRE_STRU             *pstOmInquireMsg
)
{
    ID_NAS_OM_CNF_STRU                 *pstSmsOmCnf     ;

    pstSmsOmCnf     = VOS_NULL_PTR;
    
    pstSmsOmCnf = (ID_NAS_OM_CNF_STRU *)PS_MEM_ALLOC(WUEPS_PID_SMS,
        (sizeof(ID_NAS_OM_CNF_STRU) + sizeof(NAS_OM_SMS_CONFIRM_STRU)) - NAS_OM_DATA_PTR_LEN); /* 申请内存 */

    if (VOS_NULL_PTR == pstSmsOmCnf)
    {
        NAS_ERROR_LOG(WUEPS_PID_SMS, "NAS_MMC_SndOmInquireCnfMsg:Memory Allocate fail!");
        return;
    }

    PS_MEM_SET((VOS_INT8*)pstSmsOmCnf, 0 ,sizeof(ID_NAS_OM_CNF_STRU));


    pstSmsOmCnf->ucFuncType         = 4;
    pstSmsOmCnf->ucReserve          = 0;
    pstSmsOmCnf->usLength           = NAS_OM_DATA_OFFSET + sizeof(NAS_OM_SMS_CONFIRM_STRU);
    pstSmsOmCnf->ulSn               = 0;
    pstSmsOmCnf->ulTimeStamp        = OM_GetSlice();
    pstSmsOmCnf->usPrimId           = ID_NAS_OM_SMS_CONFIRM;
    pstSmsOmCnf->usToolsId          = pstOmInquireMsg->usToolsId;

    NAS_SMS_BuildSmsOmInfo((NAS_OM_SMS_CONFIRM_STRU*)(pstSmsOmCnf->aucData));

    OM_SendData( (OM_RSP_PACKET_STRU*)pstSmsOmCnf, (sizeof(ID_NAS_OM_CNF_STRU) + sizeof(NAS_OM_SMS_CONFIRM_STRU)) - NAS_OM_DATA_PTR_LEN );                                   /* 原语发送                                 */

    PS_MEM_FREE(WUEPS_PID_SMS, pstSmsOmCnf);

}
BST_VOID BST_SYS_MntnTrigReport( BST_VOID )
{
    OM_BST_MSG_STRU                    *pstBstOmIndMsg;
    OM_BST_AGENT_APP_NUM_STRU          *pstBstAppNum;
    BST_UINT32                          ulRslt;
    BST_UINT32                          ulLength;
    BST_UINT16                          usAppNum;
    OM_BST_APP_INFO_STRU               *pstAppInfo;

    ulRslt                              = BST_TRUE;

    /* 申请的大小等于消息头BST_OM_MSG_STRU -4个字节的指针占位 + 实际代理信息大小 */
    usAppNum                            = (BST_UINT16)BST_SYS_MNTN_GetAppNumber();
    ulLength                            = (BST_OS_SIZEOF(OM_BST_MSG_STRU) - 4)
                                          + (BST_OS_SIZEOF(OM_BST_AGENT_APP_NUM_STRU));
    pstBstOmIndMsg                      = (OM_BST_MSG_STRU *)BST_SYS_MntnGetSendExternalMsgBuffAddr(UEPS_PID_BASTET, ulLength);
    if (BST_NULL_PTR == pstBstOmIndMsg)
    {
        BST_DBG_LOG1("BST_SYS_MntnTrigReport, Agent Info Msg Alloc Mem Fail",
                      0);
        return;
    }

    /* 填写消息头 */
    BST_SYS_MntnFillBstOmMsgHead( pstBstOmIndMsg,
                                  ulLength,
                                  ID_BST_OM_AGENT_INFO_IND,
                                  0 );

    pstBstAppNum                        = (OM_BST_AGENT_APP_NUM_STRU *)(pstBstOmIndMsg->aucData);
    pstBstAppNum->usAgentAppNum         = usAppNum;
    pstAppInfo                          = ( (OM_BST_APP_INFO_STRU *)(pstBstAppNum->stBstAppList ) );

    ulRslt                              = BST_SYS_MntnBuildAgentInfoInd( pstAppInfo, usAppNum );

    if (BST_TRUE != ulRslt)
    {
        BST_DBG_LOG1("BST_SYS_MntnTrigReport, Get Bst Agent Info Error: ulRslt",
                      ulRslt);
        return;
    }

    /* 发送IND消息 */
    ulRslt = OM_SendData( (OM_RSP_PACKET_STRU *)pstBstOmIndMsg, (BST_UINT16)ulLength );

    /* 释放传入的消息包 */
    BST_FREE_MSG( UEPS_PID_BASTET, pstBstOmIndMsg );

    if (VOS_OK != ulRslt)
    {
        BST_RLS_LOG1( "[Mntn] Send Maintain Message Fail:", ulRslt );
        return;
    }
    BST_RLS_LOG( "[Mntn] Send Maintain Message Success" );
    return;
}