📄 au_cmd.cpp
字号:
{
par1 = atol(ppArgv[1]);
par2 = atol(ppArgv[2]);
par3 = atol(ppArgv[3]);
}
break;
case 3:
{
par1 = atol(ppArgv[1]);
par2 = atol(ppArgv[2]);
}
break;
case 2:
{
par1 = atol(ppArgv[1]);
}
break;
case 1:
break;
default:
XOS_CliExtPrintf(pCliEnv, " 参数错误,请重试!\r\n");
break;
}
gPar.oprType = par1;
gPar.number = par2;
gPar.intvl = par3;
gPar.nsec = par4;
if(ROK != (rVal=SGetMsg(cliUuPst.region, cliUuPst.pool, &mBuf)))
{
RETVOID;
}
cliUuPst.event = AU_EVTSNDOPR;
SPstTsk(&cliUuPst, mBuf);
RETVOID;
}
void auSetPfmEnb(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
int par;
par = atol(ppArgv[1]);
if (par < 0 )
return;
pfmTstFlag = par?1:0;
XOS_CliExtPrintf(pCliEnv, (char*)"set performance test flag: %s\r\n", par?"enable":"disable");
return;
}
void auGetPfmRst(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
int diffLt;
char allTime[14];
int sec,minute,hour;
double succRat;
int freq;
diffLt = (int)difftime(endLt, startLt);
sec = diffLt % 60;
minute = (diffLt/60)%60;
hour = (diffLt/3600);
freq = smAuSts.lAuOpenReq/diffLt;
memset(allTime, 0, 14);
sprintf(allTime, "%2d:%2d:%ds",hour,minute,sec);
succRat=((double)smAuSts.lAuCloseInd/smAuSts.lAuOpenReq)*100;
XOS_CliExtPrintf(pCliEnv, (char*)"==========================================================================\r\n");
XOS_CliExtPrintf(pCliEnv, (char*)"Get Performance Test Result:\r\n");
XOS_CliExtPrintf(pCliEnv, (char*)"==========================================================================\r\n");
XOS_CliExtPrintf(pCliEnv, (char*)"Time |Total Calls |Accept Calls |succ Rate |Freq(per/sec) |\r\n");
XOS_CliExtPrintf(pCliEnv, (char*)"%-14s|%-14d|%-14d|%-13.4f%%|%-14ld|\r\n", allTime, smAuSts.lAuOpenReq, smAuSts.lAuCloseInd, succRat,freq);
XOS_CliExtPrintf(pCliEnv, (char*)"==========================================================================\r\n");
return;
}
Void auSetAddr(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
U8 par1[24], par3[24];
int par2, par4;
strcpy((char*)par1, ppArgv[1]);
strcpy((char*)par3, ppArgv[3]);
par2 = atol(ppArgv[2]);
par4 = atol(ppArgv[4]);
if (!strlen((char *)par1) || !strlen((char *)par3) ||
!par2 || !par4)
{
GlobalAddr(pCliEnv);
return;
}
strToGtAddr(par1, &auAddr.srcGt);
auAddr.srcSsn = par2;
strToGtAddr(par3, &auAddr.dstGt);
auAddr.dstSsn = par4;
GlobalAddr(pCliEnv);
}
void auCloseFlag(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
int par;
par = atol(ppArgv[1]);
if (par < 0 )
return;
auCloseDialog = par?1:0;
XOS_CliExtPrintf(pCliEnv, (char*)"AU send closeReq Flag: %s\r\n", par?"enable":"disable");
return;
}
void auSetTrc(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
int par;
par = atol(ppArgv[1]);
if (par < 0 )
return;
auAccTraceFlag = par;
XOS_CliExtPrintf(pCliEnv, (char*)"AU Trace Flag: %s\r\n", par?"enable":"disable");
return;
}
#ifdef ANSI
PUBLIC Void auMaPstInit
(
Pst *pst
)
#else
PUBLIC Void auMaPstInit(pst)
Pst *pst;
#endif
{
pst->dstEnt = ENTMA;
pst->dstInst = MA_INST_0;
pst->dstProcId = SFndProcId();
pst->pool = DFLT_POOL;
pst->region = DFLT_REGION;
pst->route = RTESPEC;
#ifdef LCAULIMAT
pst->selector = AU_SEL_LC;
#else
pst->selector = AU_SEL_TC;
#endif
pst->srcEnt = ENTAU;
pst->srcInst = AU_INST_0;
pst->srcProcId = SFndProcId();
RETVOID;
}
void auCloseDlgCmd(void)
{
Dialog *curDlg;
int sendnum;
DlgId dlgId[256];
MaDlgId suDlgId, suDlgId_loc;
if (gCloseDlg.num) /* delete special number */
{
suDlgId = gCloseDlg.pos;
sendnum = 0;
do
{
suDlgId = (suDlgId)%MAX_AU_DLG_ID;
#ifdef DAU
suDlgId_loc=suDlgId | (dmGetLocalNonCritRset()<<24);
#else
suDlgId_loc=suDlgId;
#endif
curDlg = dlgQueue->dlgFind(suDlgId_loc, 0);
suDlgId++;
if (curDlg == NULLP)
{
continue;
}
dlgId[sendnum].suDlgId=curDlg->auDlgIdGet();
dlgId[sendnum].spDlgId=curDlg->maDlgIdGet();
dlgQueue->dlgDelete(curDlg->auDlgIdGet());
printf("Delete Activate Dialog!suDlgId=%ld, maDlgId=%ld\r\n",
dlgId[sendnum].suDlgId, dlgId[sendnum].spDlgId);
sendnum++;
}while (sendnum < gCloseDlg.num);
printf("\r\nClose The %d number DlgId End!\r\n", sendnum);
}
else /* delete all */
{
for (suDlgId=1; suDlgId<= MAX_AU_DLG_ID; suDlgId++)
{
#ifdef DAU
suDlgId_loc=suDlgId | (dmGetLocalNonCritRset()<<24);
#else
suDlgId_loc=suDlgId;
#endif
curDlg = dlgQueue->dlgFind(suDlgId_loc, 0);
if (curDlg == NULLP)
{
continue;
}
dlgQueue->dlgDelete(curDlg->auDlgIdGet());
printf("Delete Activate Dialog!suDlgId=%ld, maDlgId=%ld\r\n",
curDlg->auDlgIdGet(), curDlg->maDlgIdGet());
}
printf( "Close All DlgId End!\r\n");
}
}
void auCloseDlg(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
U32 par1 = 0; /* the number of dialog to close: 0 - close all or [1, 255] */
U32 par2 = 1; /* special pos you want to delete in the SAP CB */
Buffer *mBuf = NULLP;
S16 rVal = 0;
switch(siArgc)
{
case 3:
{
par1 = (int)atol(ppArgv[1]);
par2 = (int)atol(ppArgv[2]);
}
break;
case 2:
{
par1 = (int)atol(ppArgv[1]);
}
break;
case 1:
break;
default:
XOS_CliExtPrintf(pCliEnv, "the number of argument is error, please try again.\r\n");
break;
}
if (par1 < 0 || par1 > 255)
{
XOS_CliExtPrintf(pCliEnv, (char*)"error input delete number[%d](0 <= value <= 255) .\r\n", par1);
return;
}
if (par2 < 1 || par2 > MAX_AU_DLG_ID)
{
XOS_CliExtPrintf(pCliEnv, (char*)"error input delete number[%d] (1 <= value <= %d) .\r\n", par2, MAX_AU_DLG_ID);
return;
}
if (par1 >= dlgQueue->actDlgNumGet())
{
XOS_CliExtPrintf(pCliEnv, (char*)"input number exceed activate dialog number.Delete All Dialog.\r\n");
par1=0;
}
gCloseDlg.num=par1;
gCloseDlg.pos=par2;
if (ROK != (rVal = SGetMsg(cliUuPst.region, cliUuPst.pool, &mBuf)))
{
RETVOID;
}
cliUuPst.event = AU_EVTCLSDLG;
SPstTsk(&cliUuPst, mBuf);
RETVOID;
}
void auDlgView(CLI_ENV *pCliEnv, XS32 siArgc, XCHAR **ppArgv)
{
MaDlgId suDlgId, suDlgId_loc;
Dialog *curDlg;
int totnum = 0;
XOS_CliExtPrintf(pCliEnv, (char *)"%10s%10s%10s\r\n",
"auDlgId", "maDlgId", "sapId");
for (suDlgId=1; suDlgId<=MAX_AU_DLG_ID; suDlgId++)
{
#ifdef DAU
suDlgId_loc=suDlgId | (dmGetLocalNonCritRset()<<24);
#else
suDlgId_loc=suDlgId;
#endif
curDlg = dlgQueue->dlgFind(suDlgId_loc, 0);
if (curDlg == NULL)
{
continue;
}
XOS_CliExtPrintf(pCliEnv, (char*)"%10ld%10ld%10ld\r\n",
curDlg->auDlgIdGet(), curDlg->maDlgIdGet(), curDlg->spIdGet());
totnum++;
}
XOS_CliExtPrintf(pCliEnv, (char *)"total Activate Dialog number %d.\r\n", totnum);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -