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

📄 au_ext.cpp

📁 map协议源代码
💻 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(&gti2c,&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(&gti2c,&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(&gti2c,&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(&gti2c,&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(&gti2c,&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(&gti2c,&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 + -