📄 au_ext.cpp
字号:
/*************************************************
*************************************************/
/* ------------------------Include File ----------------------------------*/
#include "envopt.h" /* environment options */
#include "envdep.h" /* environment dependent */
#include "envind.h" /* environment independent */
#include "gen.h" /* general layer */
#include "cm5.h"
#include "cm_err.h"
#include "cm_hash.h"
#include "cm_ss7.h"
#include "ssi.h"
#include "lma.h"
#include "stu.h"
#include "mat.h"
#include "ma.h"
#include "gen.x"
#include "cm5.x"
#include "cm_ss7.x"
#include "cm_lib.x"
#include "cm_hash.x"
#include "ssi.x"
#include "stu.x"
#include "lma.x"
#include "mat.x"
#include "ma.x"
#ifdef CP_CMS
#include "lha_app.h"
#endif
#include "au.h"
#include "au_opr.h"
#include "au_ext.h"
#include "au_dlg.h"
#include "au_cmd.h"
#if 0
#include "stack_cfg.h"
#endif
Pst smAuPst; /* SM Send Msg to MAP AU */
Pst cliUuPst; /* command line Send Msg to AU*/
EXTERN time_t startLt;
EXTERN time_t endLt;
PUBLIC Void initSmAuSts()
{
/* initialize AU sts strcture */
memset(&smAuSts, 0, sizeof(AuSts));
RETVOID;
}
PUBLIC Void initSmAuPst()
{
smAuPst.selector = AU_SEL_LC;
smAuPst.event = 0;
smAuPst.region = AU_REG;
smAuPst.pool = AU_POOL;
smAuPst.prior = PRIOR0;
smAuPst.route = RTESPEC;
smAuPst.dstProcId = SFndProcId();
smAuPst.dstEnt = ENTAU;
smAuPst.dstInst = AU_INST_0;
smAuPst.srcProcId = SFndProcId();
smAuPst.srcEnt = ENTSM;
smAuPst.srcInst = SM_INST_0;
}
PUBLIC Void auTstInit()
{
/* Initialize the smPst strcture */
initSmAuPst();
initSmAuSts();
/* Initialize the time structure */
memset(&startLt, 0, sizeof(time_t));
memset(&endLt, 0, sizeof(time_t));
/* initialize the AU dialogue queue */
dlgQueue = new Dialog_Queue();
RETVOID;
}
#ifdef ANSI
PUBLIC S16 uuActvInit
(
Ent ent, /* entity */
Inst inst, /* instance */
Region region, /* region */
Reason reason /* reason */
)
#else
PUBLIC S16 uuActvInit(ent, inst, region, reason)
Ent ent; /* entity */
Inst inst; /* instance */
Region region; /* region */
Reason reason; /* reason */
#endif
{
cliUuPst.selector = CLI_SEL_LC;
cliUuPst.event = 0;
cliUuPst.pool = DFLT_POOL;
cliUuPst.region = region;
cliUuPst.prior = PRIOR0;
cliUuPst.route = RTESPEC;
cliUuPst.dstProcId = SFndProcId();
cliUuPst.dstEnt = ENTUU;
cliUuPst.dstInst = UU_INST;
cliUuPst.srcProcId = SFndProcId();
cliUuPst.srcEnt = ent;
cliUuPst.srcInst = inst;
RETVALUE(ROK);
}
#ifdef ANSI
PUBLIC S16 uuActvTsk
(
Pst *pst, /* post */
Buffer *mBuf /* message buffer */
)
#else
PUBLIC S16 uuActvTsk(pst, mBuf)
Pst *pst; /* post */
Buffer *mBuf; /* message buffer */
#endif
{
switch(pst->event)
{
case AU_EVTSNDOPR: /* Send Operation */
{
auSendOprCmd();
}
break;
case AU_EVTCLSDLG: /* Close Dialogue */
{
auCloseDlgCmd();
}
break;
default:
break;
}
RETVALUE(ROK);
}
S16 PrintAccAddr(spAddr *AccAddr)
{
int i;
#ifdef CMSS7_SPHDROPT
printf("spHdrOpt=%d\n", AccAddr->spHdrOpt);
#endif
printf("pres=%s\n", AccAddr->pres?"TRUE":"FALSE");
printf("switch=%d\n", AccAddr->sw);
printf("ssfPres=%s\n", AccAddr->ssfPres?"TRUE":"FALSE");
printf("ssf=%d\n", AccAddr->ssf);
printf("niInd=%s\n", AccAddr->niInd?"TRUE":"FALSE");
printf("rtgInd=%s\n", AccAddr->rtgInd?"TRUE":"FALSE");
printf("ssnInd=%s\n", AccAddr->ssnInd?"TRUE":"FALSE");
printf("pcInd=%s\n", AccAddr->pcInd?"TRUE":"FALSE");
printf("ssn=%d\n", AccAddr->ssn);
printf("dpc=%ld\n", AccAddr->pc);
printf("gt.format=%d\n", AccAddr->gt.format);
switch (AccAddr->gt.format)
{
case 1:
case 2:
case 3:
break;
case 4:
printf("gt.gt.f4.tType=%d\n", AccAddr->gt.gt.f4.tType);
printf("gt.gt.f4.numPlan=%d\n", AccAddr->gt.gt.f4.numPlan);
printf("gt.gt.f4.encSch=%d\n", AccAddr->gt.gt.f4.encSch);
printf("gt.gt.f4.natAddr=%d\n", AccAddr->gt.gt.f4.natAddr);
break;
case 5:
default:
break;
}
printf("gt.Addr.Length=%d", AccAddr->gt.addr.length);
printf("gt.Addr.Value=");
for(i=0; i<AccAddr->gt.addr.length; i++)
printf("%02x", AccAddr->gt.addr.strg[i]);
printf("\n");
return(ROK);
}
S16 accFillAddr(SpAddr *auSrcAddr, SpAddr *auDstAddr)
{
/* Addr for GT */
auSrcAddr->pres = 1;
auSrcAddr->sw = 6;
auSrcAddr->ssfPres = 0;
auSrcAddr->ssf = 1;
auSrcAddr->niInd = 1;
auSrcAddr->rtgInd = 1;
auSrcAddr->ssnInd = 1;
auSrcAddr->pcInd = 0;
auSrcAddr->ssn = auAddr.srcSsn;
auSrcAddr->pc = 0;
cmZero((U8 *)&auSrcAddr->gt,sizeof(GlbTi));
cmMemcpy((U8 *)&auSrcAddr->gt, (U8 *)&auAddr.srcGt, sizeof(GlbTi));
auDstAddr->pres = 1;
auDstAddr->sw = 6;
auDstAddr->ssfPres = 0;
auDstAddr->ssf = 0;
auDstAddr->niInd = 0;
auDstAddr->rtgInd = 0;
auDstAddr->ssnInd = 1;
auDstAddr->pcInd = 0;
auDstAddr->ssn = auAddr.dstSsn;
auDstAddr->pc = 0;
cmZero((U8 *)&auDstAddr->gt,sizeof(GlbTi));
cmMemcpy((U8 *)&auDstAddr->gt, (U8 *)&auAddr.dstGt, sizeof(GlbTi));
#if 0
PrintAccAddr(auSrcAddr);
PrintAccAddr(auDstAddr);
#if (MA_INST_ID == 3) /* from gt=1382317(ssn=0x06) to gt=13823166(ssn=0x07) */
auSrcAddr->pres = 1;
auSrcAddr->sw = 6;
auSrcAddr->ssfPres = 0;
auSrcAddr->ssf = 1;
auSrcAddr->niInd = 1;
auSrcAddr->rtgInd = 1;
auSrcAddr->ssnInd = 0;
auSrcAddr->pcInd = 0;
auSrcAddr->ssn = 0x06;
auSrcAddr->pc = 0;
cmZero((U8 *)&auSrcAddr->gt,sizeof(GlbTi));
//cmAscHexAdrToBcd(>i2c,&auSrcAddr->gt.addr);
auSrcAddr->gt.format = 4;
auSrcAddr->gt.gt.f4.tType = 0;
auSrcAddr->gt.gt.f4.numPlan = 0x01;
auSrcAddr->gt.gt.f4.encSch = 0x01;
auSrcAddr->gt.gt.f4.natAddr = 0x04;
auSrcAddr->gt.addr.length = 4;
auSrcAddr->gt.addr.strg[0] = 0x31;
auSrcAddr->gt.addr.strg[1] = 0x28;
auSrcAddr->gt.addr.strg[2] = 0x13;
auSrcAddr->gt.addr.strg[3] = 0xf7;
auDstAddr->pres = 1;
auDstAddr->sw = 6;
auDstAddr->ssfPres = 0;
auDstAddr->ssf = 0;
auDstAddr->niInd = 0;
auDstAddr->rtgInd = 0;
auDstAddr->ssnInd = 1;
auDstAddr->pcInd = 0;
auDstAddr->ssn = 0x07;
auDstAddr->pc = 0;
cmZero((U8 *)&auDstAddr->gt,sizeof(GlbTi));
//cmAscHexAdrToBcd(>i2c,&auSrcAddr->gt.addr);
auDstAddr->gt.format = 4;
auDstAddr->gt.gt.f4.tType = 0;
auDstAddr->gt.gt.f4.numPlan = 0x01;
auDstAddr->gt.gt.f4.encSch = 0x02;
auDstAddr->gt.gt.f4.natAddr = 0x04;
auDstAddr->gt.addr.length = 4;
auDstAddr->gt.addr.strg[0] = 0x31;
auDstAddr->gt.addr.strg[1] = 0x28;
auDstAddr->gt.addr.strg[2] = 0x13;
auDstAddr->gt.addr.strg[3] = 0x66;
#elif (MA_INST_ID==4) /* from gt=13823166(ssn=0x07) to gt=1382317(ssn=0x06) */
auSrcAddr->pres = 1;
auSrcAddr->sw = 6;
auSrcAddr->ssfPres = 0;
auSrcAddr->ssf = 1;
auSrcAddr->niInd = 1;
auSrcAddr->rtgInd = 1;
auSrcAddr->ssnInd = 0;
auSrcAddr->pcInd = 0;
auSrcAddr->ssn = 0x07;
auSrcAddr->pc = 0;
cmZero((U8 *)&auSrcAddr->gt,sizeof(GlbTi));
//cmAscHexAdrToBcd(>i2c,&auSrcAddr->gt.addr);
auSrcAddr->gt.format = 4;
auSrcAddr->gt.gt.f4.tType = 0;
auSrcAddr->gt.gt.f4.numPlan = 0x01;
auSrcAddr->gt.gt.f4.encSch = 0x02;
auSrcAddr->gt.gt.f4.natAddr = 0x04;
auSrcAddr->gt.addr.length = 4;
auSrcAddr->gt.addr.strg[0] = 0x31;
auSrcAddr->gt.addr.strg[1] = 0x28;
auSrcAddr->gt.addr.strg[2] = 0x13;
auSrcAddr->gt.addr.strg[3] = 0x66;
auDstAddr->pres = 1;
auDstAddr->sw = 6;
auDstAddr->ssfPres = 0;
auDstAddr->ssf = 0;
auDstAddr->niInd = 0;
auDstAddr->rtgInd = 0;
auDstAddr->ssnInd = 1;
auDstAddr->pcInd = 0;
auDstAddr->ssn = 0x06;
auDstAddr->pc = 0;
cmZero((U8 *)&auDstAddr->gt,sizeof(GlbTi));
//cmAscHexAdrToBcd(>i2c,&auSrcAddr->gt.addr);
auDstAddr->gt.format = 4;
auDstAddr->gt.gt.f4.tType = 0;
auDstAddr->gt.gt.f4.numPlan = 0x01;
auDstAddr->gt.gt.f4.encSch = 0x01;
auDstAddr->gt.gt.f4.natAddr = 0x04;
auDstAddr->gt.addr.length = 4;
auDstAddr->gt.addr.strg[0] = 0x31;
auDstAddr->gt.addr.strg[1] = 0x28;
auDstAddr->gt.addr.strg[2] = 0x13;
auDstAddr->gt.addr.strg[3] = 0xf7;
#elif (MA_INST_ID==1) /* from gt=1382318(ssn=0x06) to gt=1382317(ssn=0x07)*/
auSrcAddr->pres = 1;
auSrcAddr->sw = 6;
auSrcAddr->ssfPres = 0;
auSrcAddr->ssf = 1;
auSrcAddr->niInd = 1;
auSrcAddr->rtgInd = 1;
auSrcAddr->ssnInd = 0;
auSrcAddr->pcInd = 0;
auSrcAddr->ssn = 0x06;
auSrcAddr->pc = 0;
cmZero((U8 *)&auSrcAddr->gt,sizeof(GlbTi));
//cmAscHexAdrToBcd(>i2c,&auSrcAddr->gt.addr);
auSrcAddr->gt.format = 4;
auSrcAddr->gt.gt.f4.tType = 0;
auSrcAddr->gt.gt.f4.numPlan = 0x01;
auSrcAddr->gt.gt.f4.encSch = 0x01;
auSrcAddr->gt.gt.f4.natAddr = 0x04;
auSrcAddr->gt.addr.length = 4;
auSrcAddr->gt.addr.strg[0] = 0x31;
auSrcAddr->gt.addr.strg[1] = 0x28;
auSrcAddr->gt.addr.strg[2] = 0x13;
auSrcAddr->gt.addr.strg[3] = 0xf8;
auDstAddr->pres = 1;
auDstAddr->sw = 6;
auDstAddr->ssfPres = 0;
auDstAddr->ssf = 0;
auDstAddr->niInd = 0;
auDstAddr->rtgInd = 0;
auDstAddr->ssnInd = 1;
auDstAddr->pcInd = 0;
auDstAddr->ssn = 0x07;
auDstAddr->pc = 0;
cmZero((U8 *)&auDstAddr->gt,sizeof(GlbTi));
//cmAscHexAdrToBcd(>i2c,&auSrcAddr->gt.addr);
auDstAddr->gt.format = 4;
auDstAddr->gt.gt.f4.tType = 0;
auDstAddr->gt.gt.f4.numPlan = 0x01;
auDstAddr->gt.gt.f4.encSch = 0x02;
auDstAddr->gt.gt.f4.natAddr = 0x04;
auDstAddr->gt.addr.length = 4;
auDstAddr->gt.addr.strg[0] = 0x31;
auDstAddr->gt.addr.strg[1] = 0x28;
auDstAddr->gt.addr.strg[2] = 0x13;
auDstAddr->gt.addr.strg[3] = 0x66;
#endif
#endif
return(ROK);
}
#ifdef ANSI
PUBLIC S16 cmUnpkAuOpenReq
(
AuOpenReq func, /* primitive to call */
Pst *pst, /* post structure */
Buffer *mBuf /* message buffer */
)
#else
PUBLIC S16 cmUnpkAuOpenReq (func,pst, mBuf)
AuOpenReq func; /* primitive to call */
Pst *pst; /* post structure */
Buffer *mBuf; /* message buffer */
#endif
{
MaOprType oprType;
TRC2(cmUnpkAuOpenReq)
CMCHKUNPKLOG(SUnpkU8, &oprType, mBuf, EMAT361, pst);
(Void)SPutMsg(mBuf);
RETVALUE((*func)(pst, oprType));
} /* end of cmUnpkMatBndReq */
#ifdef ANSI
PUBLIC S16 cmPkAuOpenReq
(
Pst *pst, /* post structure */
MaOprType oprType /* operation type */
)
#else
PUBLIC S16 cmPkAuOpenReq (pst, oprType)
Pst *pst; /* post structure */
MaOprType oprType; /* operation type */
#endif
{
S16 rVal;
Buffer *mBuf;
TRC2(cmPkAuOpenReq)
if ((rVal = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
{
RETVALUE(rVal);
}
CMCHKPKLOG(SPkU8, oprType, mBuf, EMAT275, pst);
pst->event = (Event)AU_EVTOPENREQ;
(Void)SPstTsk(pst, mBuf);
RETVALUE(ROK);
} /* end of cmPkAuOpenReq */
S16 AuUiOpenReq(Pst *pst, MaOprType oprType)
{
Dialog *curDlg;
static int errDlgNum = 0;
static int totalDlgNum = 0;
curDlg = dlgQueue->dlgInsert(AU_ID_NULL, AU_ID_NULL);
if (curDlg != NULLP)
{
curDlg->auLiMatOpenReqPrs(oprType);
totalDlgNum++;
if (totalDlgNum%1000 == 0) printf("#");
}
else
{
errDlgNum++;
if (errDlgNum%1000 == 0) printf("*");
}
RETVALUE(ROK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -