⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 au_tmr.cpp

📁 map协议源代码
💻 CPP
字号:
/******************************************************

******************************************************/
#include "envopt.h"        /* environment options */
#include "envdep.h"        /* environment dependent */
#include "envind.h"        /* environment independent */
#include "gen.h"           /* general layer */
#include "cm5.h"
#include "ssi.h"
#include "lma.h"
#include "cm_err.h"
#include "stu.h"
#include "cm_hash.h"
#include "mat.h"
#include "cm_ss7.h"

#include "ma.h"

#include "gen.x"
#include "cm5.x"
#include "ssi.x"
#include "cm_ss7.x"
#include "cm_lib.x"
#include "stu.x"
#include "lma.x"
#include "cm_hash.x"
#include "mat.x"

#include "ma.x"

#ifdef CP_CMS
#include "lha_app.h"
#endif

#include "au.h"
#include "au_opr.h"
#include "au_tmr.h"
#include "au_dlg.h"


extern Dialog_Queue *dlgQueue;  /* diglog queue data structure */
CmTqCp auTqCp;
CmTqType auTq[MATQNUMENT];

PUBLIC S16 accAuTmrEvnt(U32 dlgId, S16 evnt)
{
    TRC3(accAuTmrEvnt)

    Dialog          *pCurDlg;
    MaDlgId         auDlgId;
    MaDlgId         maDlgId;
    PRIVATE U8      rsn;
    PRIVATE U8      src;
    MaAbrtEv            abrtEv;

    AUACC_PRINT("accAuTmrEvnt________Event = %ld, DlgId = %ld\n", evnt,dlgId);

    smAuSts.lAuTimeout ++;
    switch(evnt)
    {
        case AU_GAURD_TMR:
            auDlgId = dlgId;
            maDlgId = AU_ID_NULL;

            if ( (pCurDlg = dlgQueue->dlgFind(auDlgId, maDlgId)) == NULL)
            {
                AUACC_PRINT("accTmrEvnt___________ timeout dialog cannot found\n");
                
                smAuSts.lAuTimeFail++;
                return(RFAILED);
            }
            else
            {
                AUACC_PRINT("accTmrEvnt___________auDlgId = %ld maDlgId = %ld\n",
                    auDlgId, maDlgId);
                accAuStopTmr(AU_GAURD_TMR, pCurDlg);

                /* prepare the Abort event structure */
                src = MA_USR_ABRT;
                rsn = MA_ABRT_USR_SPECIFIC;

                /* fill the abort information */
                cmZero((U8 *)&abrtEv, sizeof(MaAbrtEv));

                abrtEv.abrtReason = rsn;
                abrtEv.abrtSrc = src;

                (void) AuLiMatAbrtReq(&(dlgQueue->auPst), pCurDlg->spIdGet(),  \
                                auDlgId, pCurDlg->maDlgIdGet(), &abrtEv);

                if (dlgQueue->dlgDelete(auDlgId) != ROK)
                {
                    AUACC_PRINT("auTmrEvnt________dlgDelete failed \
                        auDlgId = %ld, maDlgId = %ld\n",
                        auDlgId, maDlgId);
                    smAuSts.lAuTimeFail++;
                    RETVALUE(RFAILED);
                }
                else
                {
                    AUACC_PRINT("auTmrEvnt________dlgDelete ok \
                        auDlgId = %ld maDlgId = %ld\n",
                        auDlgId, maDlgId);
                }
                smAuSts.lAuTimeSuc++;
            }
            break;
        default:
            break;
    }

    RETVALUE(ROK);
}

PUBLIC void accAuStartTmr(S16 tmrEvnt, Dialog *pDialog)
{
    CmTmrArg        auTmrArg;
    U16         wait = 0;

    TRC3(accAuStartTmr)

    AUACC_PRINT("accAuStartTmr________tmrEvent = %ld, \
        auDlgId=%ld, maDlgId = %ld\n", tmrEvnt,
        pDialog->auDlgIdGet(), pDialog->maDlgIdGet());

    if (tmrEvnt == AU_GAURD_TMR)
    {
        if (pDialog->_tmrVal != 0)
        {
            wait = pDialog->_tmrVal;
        }
        else
            wait = AU_GUARD_TMR_VAL;

        if (wait != 0)
        {
            auTmrArg.tqCp = &auTqCp;
            auTmrArg.tq = auTq;
            auTmrArg.max = AU_MAX_TMRS;
            auTmrArg.timers = pDialog->timers;
            auTmrArg.cb = (PTR)pDialog->auDlgIdGet();
            auTmrArg.tNum = 0;
            auTmrArg.evnt = tmrEvnt;
            auTmrArg.wait = wait;

            cmPlcCbTq(&auTmrArg);
        }
    }
    RETVOID;
}

PUBLIC void accAuStopTmr(S16 tmrEvnt, Dialog *pDialog)
{
    U8              tmrNum;
    S16         tmrEvnt1;
    CmTmrArg        auTmrArg;

    TRC3(auAuStopTmr)

    for (tmrNum = 0; tmrNum < AU_MAX_TMRS; tmrNum++)
    {
        if (tmrEvnt == AU_GAURD_TMR)
        {
            tmrEvnt1 = pDialog->timers[tmrNum].tmrEvnt;
        }

        if (tmrEvnt == tmrEvnt1)
        {
            auTmrArg.tqCp = &auTqCp;
            auTmrArg.tq = auTq;

            auTmrArg.timers = pDialog->timers;
            auTmrArg.cb = (PTR)pDialog->auDlgIdGet();
            auTmrArg.evnt = (U8)tmrEvnt;
            auTmrArg.wait = 0;
            auTmrArg.tNum = tmrNum;
            auTmrArg.max = AU_MAX_TMRS;

            cmRmvCbTq(&auTmrArg);
        }
    }
    RETVOID;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -