📄 au_tmr.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 + -