📄 ma_testtool.c
字号:
/* header include files (.h) */
#include "envopt.h" /* environment options */
#include "envdep.h" /* environment dependent */
#include "envind.h" /* environment independent */
#include "gen.h" /* general layer */
#include "ssi.h" /* system services */
#include "cm5.h"
#include "cm_ss7.h"
#include "cm_err.h" /* common error */
#include "stu.h" /* tcap upper interface */
#include "mat.h" /* inap upper interface */
#ifdef MA_FTHA
#include "sht.h" /* SHT interface */
#endif /* MA_FTHA */
#include "lma.h" /* layer management interface */
#include "ma_acc.h" /* acceptance test defines */
#include "ma.h"
#include "ma_mf.h"
#ifdef ZJ
#include "cm_ftha.h" /* Common FTHA */
#include "cm_pftha.h" /* Common PSF defines */
#include "cm_psfft.h"
#include "cm_tupsf.h" /* Common TCAP user PSF */
#include "zj_acc.h" /* PSF Acceptance Test */
#include "lzj.h"
#endif
/* header/extern include files (.x) */
#include "gen.x" /* general layer */
#include "ssi.x" /* system services */
#include "cm5.x"
#include "cm_ss7.x" /* Common */
#include "cm_lib.x" /* Common library headers */
#include "stu.x" /* tcap upper interface */
#include "lma.x" /* layer management interface */
#include "mat.x" /* inap upper interface */
#ifdef MA_FTHA
#include "sht.x" /* SHT interface */
#endif /* MA_FTHA */
#ifdef ZJ
#include "cm_ftha.x" /* Common FTHA */
#include "cm_pftha.x" /* Common PSF defines */
#include "cm_psfft.x"
#include "cm_tupsf.x" /* Common TCAP user PSF */
#endif
#include "ma.x"
#include "ma_acc.x" /* acceptance test defines */
#ifdef ZJ
#include "lzj.x"
#include "zj.x"
#include "zj_acc.x"
#endif
#ifdef XWEXT
/* Global Variable */
#ifdef MAP_TEST_TYPE
EXTERN U8 maAccOprCode; /* Sample Operation code */
/*EXTERN MaAccCb maAccCb; *//* MAP Acceptance Test control block */
EXTERN SpAddr maAccAddrs[];
EXTERN MaApConName maAccACNs[];
EXTERN MaAllSSEv maInvoke; /* Global Invoke Structure */
#endif
EXTERN MaTknElmtDef **maTstPduDefs[];
EXTERN MaCb maCb;
/*function in ma_mf.c for test*/
EXTERN S16 maEncStart(MaMsgCtl *ctlp);
EXTERN S16 maDecStart(MaMsgCtl *ctlp);
/*private Variable*/
#define MAT_TST 4
#define CHEKRET if(ret != ROK) RETVALUE(RFAILED)
/* macro to set TknU8 , TknS16, TknU16, TknU32...etc. */
#define MA_API_SET_TOKEN_VALUE(_tkn, _val) \
{ \
(_tkn)->pres = PRSNT_NODEF; \
(_tkn)->val = (_val); \
}
/*macro to set TknStrS , TknStrE , TknStr , TknStr , TknStrM...etc*/
#define MA_API_CPY_TKNSTR(_tkn, _val, _len, _memCp) \
{ \
(_tkn)->pres = NOTPRSNT; \
if(_len > 0) \
{ \
(_tkn)->pres = PRSNT_NODEF; \
(_tkn)->len = (U8)(_len); \
cmMemcpy((U8 *)(_tkn)->val, (CONSTANT U8 *)(_val), (_len)); \
} \
}
#define MA_API_SET_U32_TO_TKNS(_tkn, _val, _memCp) \
{ \
(_tkn)->pres = NOTPRSNT; \
(_tkn)->pres = PRSNT_NODEF; \
if((_val>=0)&&(_val < 0x80)) \
{ \
(_tkn)->len = (U8)(1); \
} \
if((_val >= 0x80)&&(_val < 0x7fff)) \
{ \
(_tkn)->len = (U8)(2); \
(_tkn)->val[0] = 0x0FF&_val; \
(_tkn)->val[1] = ((0xFF00&_val)>>8); \
} \
if((_val >= 0x8000)&&(_val < 0x7fffff)) \
{ \
(_tkn)->len = (U8)(3); \
(_tkn)->val[0] = 0x0FF&_val; \
(_tkn)->val[1] = (0x0FF00&_val)>>8; \
(_tkn)->val[2] = (0xFF0000&_val)>>16; \
} \
if((_val >= 0x800000)&&(_val < 0x7fffffff)) \
{ \
(_tkn)->len = (U8)(4); \
(_tkn)->val[0] = 0x0FF&_val; \
(_tkn)->val[1] = (0x0FF00&_val)>>8; \
(_tkn)->val[2] = (0xFF0000&_val)>>16; \
(_tkn)->val[2] = (0xFF000000&_val)>>24; \
} \
}
#define maTstVerifyTknU8(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d Verify TknU8 ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyTknU8(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyTknStrS(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d VerifyTknStrS ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyTknStrS(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyTknStr12(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d VerifyTknStrS ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyTknStr12(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyExtCentrex(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d Verify Centrex ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyExtCentrex(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyExtLocation(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d Verify Loction ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyExtLocation(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyExtShrinkDial(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d Verify Shrink DIal number ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyExtShrinkDial(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyExtContSeq(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d Verify extension sequence ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyExtContSeq(verflg, ptr1, ptr2)):RFAILED
#define maTstVerifyExt(verflg, ptr1, ptr2) \
(sprintf(prntBuf," %05d Verify extension ( %s, %s, %s)\n", \
__LINE__ , #verflg,#ptr1,#ptr2)) ? \
(SPrint(prntBuf), _maTstVerifyExt(verflg, ptr1, ptr2)):RFAILED
#define DBGTST(a) \
sprintf(prntBuf, a);\
SPrint(prntBuf)
PRIVATE Txt prntBuf[255];
/*set data service type , 1 OCTET STRING ,
*DataService ::= OCTET STRING (SIZE(2)){
* -- bit 876543 reserve(filled with 0)
* -- bit 1(narrow band service), 1: open
* -- 0: close
* -- bit 2(broad band service), 1: open
* -- 0: close
*/
S16 maTstSetExtDataserv(U8 verFlg,MaXWPriExt *evt, U8 *serv, U8 resv)
{
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
if(cmStrlen(serv) != 2)
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID1, 1, 0);
MA_API_SET_TOKEN_VALUE(&evt->etype.elmntPres, (U8)1);
MA_API_CPY_TKNSTR(&evt->etype.u.xwdataserv, serv, 2, 0);
RETVALUE(ROK);
}
/*set location :ebsc , lai , bts*/
S16 maTstSetExtLocation(U8 verFlg,MaXWPriExt *evt, U8 ebscnum, U16 btsnum, U8 * lai, U8 resv)
{
if((ebscnum<1) || (ebscnum>0xFF))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
if((btsnum<1) || (btsnum>0xFFFF))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
if(cmStrlen(lai) != 3)
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID2, 1, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)2);
/*ebsc 1 byte (1..255)*/
evt->etype.u.xwlocation.xwebscnum.pres = TRUE;
evt->etype.u.xwlocation.xwebscnum.len = 1;
evt->etype.u.xwlocation.xwebscnum.val[0] = ebscnum;
/*bts 2 byte (1..65535)*/
evt->etype.u.xwlocation.xwbtsnum.pres = TRUE;
evt->etype.u.xwlocation.xwbtsnum.len = 2;
evt->etype.u.xwlocation.xwbtsnum.val[0] = 0x0FF&btsnum;
evt->etype.u.xwlocation.xwbtsnum.val[1] = (0xFF00&btsnum)>>8;
MA_API_CPY_TKNSTR(&evt->etype.u.xwlocation.xwlai, lai, 3, 0);
RETVALUE(ROK);
}
/*set centrex group inormation*/
S16 maTstSetExtCentrexInfo(U8 verFlg,MaXWPriExt *evt, U8 *grpnum, U8 *grpprefix, U8 *shrtnum, U8 *grprigt, U8 resv)
{
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
if((cmStrlen(grpnum) < 1) || (cmStrlen(grpnum)>3))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
if((cmStrlen(grpprefix) < 1) || (cmStrlen(grpprefix)>3))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
if((cmStrlen(shrtnum) < 1) || (cmStrlen(shrtnum)>3))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
if(cmStrlen(grprigt) != 1)
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID3, 1, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)3);
MA_API_CPY_TKNSTR(&evt->etype.u.xwcentrex.xwcentrexgrpnum, grpnum, cmStrlen(grpnum), 0);
MA_API_CPY_TKNSTR( &evt->etype.u.xwcentrex.xwcentrexgrppre, grpprefix, cmStrlen(grpprefix), 0);
MA_API_CPY_TKNSTR(&evt->etype.u.xwcentrex.xwcentrexshtnum, shrtnum, cmStrlen(shrtnum), 0);
/*evt->etype.u.xwcentrex.xwcentrexrigt.pres = PRSNT_NODEF;
evt->etype.u.xwcentrex.xwcentrexrigt.len = 1;
evt->etype.u.xwcentrex.xwcentrexrigt.val[0] = grprigt;*/
MA_API_CPY_TKNSTR(&evt->etype.u.xwcentrex.xwcentrexrigt, grprigt, 1, 0);
RETVALUE(ROK);
}
/*set update type*/
/*UpdataType ::= ENUMERATED {
poweronupdata(1),
overareaupdata(2),
handoffupdata(3),
startcallupdata(4),
implictupdata(5)}
*/
S16 maTstSetExtUpdType(U8 verFlg,MaXWPriExt *evt, U8 updtype, U8 resv)
{
U8 i=1;
EXTERN MaTknEnum maXWExtUpdateTypeEnums0[];
while(i <= maXWExtUpdateTypeEnums0[0])
{
if(maXWExtUpdateTypeEnums0[i] == updtype)
{
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID4, 1, 0);
MA_API_SET_TOKEN_VALUE(&evt->etype.elmntPres, (U8)4);
/*1-4*/
MA_API_SET_TOKEN_VALUE(&evt->etype.u.xwupdatetype, updtype);
RETVALUE(ROK);
}
i++;
}
printf("then enum value [update type] is unvaliable!\r\n");
RETVALUE(RFAILED);
}
/*set authorization type*/
S16 maTstSetExtAuthType(U8 verFlg,MaXWPriExt *evt, U8 autype, U8 resv)
{
U8 i=1;
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID5, 1, 0);
MA_API_SET_TOKEN_VALUE(&evt->etype.elmntPres, (U8)5);
MA_API_SET_TOKEN_VALUE(&evt->etype.u.xwauthtype, autype);
RETVALUE(ROK);
}
/*set shrink dial number*/
S16 maTstSetExtShrinkDialNum(U8 verFlg,MaXWPriExt *evt, U8 *realnum, U8 *shrinknum, U8 resv)
{
U8 i;
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID6, 1, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)6);
for(i=0 ; i < MAX_SHRINK_DIAL ; i++)
{
MA_API_CPY_TKNSTR(&evt->etype.u.xwshrinkdialnum[i].realNum, realnum, cmStrlen(realnum), 0);
MA_API_CPY_TKNSTR(&evt->etype.u.xwshrinkdialnum[i].shrinkNum, shrinknum, cmStrlen(shrinknum), 0);
}
RETVALUE(ROK);
}
/*set call password*/
/*OCTET STRING SIZE(1..8)*/
S16 maTstSetExtPaswdCall(U8 verFlg,MaXWPriExt *evt, U8 *pwd, U8 resv)
{
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
if((cmStrlen(pwd) < 1) || (cmStrlen(pwd)>8))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID7, 1, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)7);
MA_API_CPY_TKNSTR(&evt->etype.u.xwcallpas, pwd, cmStrlen(pwd), 0);
RETVALUE(ROK);
}
/*set hotline number*/
/*OCTET STRING SIZE(1..9)*/
S16 maTstSetExtHotline(U8 verFlg,MaXWPriExt *evt, U8 *hotline, U8 resv)
{
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
if((cmStrlen(hotline) < 1) || (cmStrlen(hotline)>9))
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID8, 1, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)8);
MA_API_CPY_TKNSTR(&evt->etype.u.xwrthotlinenum, hotline , cmStrlen(hotline), 0);
RETVALUE(ROK);
}
S16 maTstSetExtSmartCall(U8 verFlg,MaXWPriExt *evt, Bool smatcal, U8 resv)
{
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID9, 1, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)9);
MA_API_SET_TOKEN_VALUE(&evt->etype.u.xwsmartcall, smatcal);
RETVALUE(ROK);
}
/*2 octet string*/
S16 maTstSetExtUtType(U8 verFlg,MaXWPriExt *evt, U8 *uttype, U8 resv)
{
/*
if (!(IS_VER_EQUAL(maAccCb.pSwtch,verFlg)))
{
evt->id.pres = FALSE;
evt->etype.elmntPres.pres = FALSE;
RETVALUE(RFAILED);
}
*/
if(cmStrlen(uttype) != 2)
{
printf("unavaliable value!\r\n");
RETVALUE(RFAILED);
}
MA_API_CPY_TKNSTR(&evt->id, (U8 *)XWEXT_OID10, 2, 0);
MA_API_SET_TOKEN_VALUE (&evt->etype.elmntPres, (U8)10);
MA_API_CPY_TKNSTR(&evt->etype.u.xwuttype, uttype, 2, 0);
RETVALUE(ROK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -