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

📄 ma_acc2.c

📁 gsm map协议源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
      
} /* maAccOprRsp */


/*
*
*       Fun:   maAccGetIndType
*
*       Desc:  get the primitive type based on the operation code
*
*       Ret:   ROK      
*
*       Notes: 
*
*       File:  ma_acc2.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccGetIndType
(
U8          oprCode,          /* Operation Code */
U8          *evntType         /* Event Type */
)
#else
PUBLIC S16 maAccGetIndType(oprCode, evntType)
U8          oprCode;          /* Operation Code */
U8          *evntType;        /* Event Type */
#endif
{
   TRC2(maAccGetIndType)
   switch(oprCode)
   {
/* New Operations */
#if (MAP_REL98 || MAP_REL99)
#if (MAP_HLR || MAP_MLC)
      case MAT_SENDROUTINFOFORLCS:          /* RoutInfo For LCS */
      {
         *evntType = MAT_EVTLOCSERVIND;
         break;
      }
#endif

#if (MAP_MSC || MAP_MLC || (MAP_REL99 && MAP_REL4 && MAP_GSN))
      case MAT_SUBSLOCRPT:          /* Subscriber Location Report */
      case MAT_PROVSUBSLOC:          /* Provide Subscriber Location */
      {
         *evntType = MAT_EVTLOCSERVIND;
         break;
      }
#endif
#if (MAP_REL99)
#if (MAP_VLR || MAP_HLR || MAP_GSN)
      case MAT_AUTHFAILRPT:          /* MaAuthFailRpt */
      {
         *evntType = MAT_EVTAUTHMGMTIND;
         break;
      }
#endif
#if (MAP_VLR || MAP_HLR || MAP_GSN)
      case MAT_NOTE_MMEVT:          /* Note Mm Event  */
      {
         *evntType = MAT_EVTLOCMGMTIND;
         break;
      }
#endif
#if (MAP_MSC || MAP_HLR)
      case MAT_IST_ALERT:          /* IST Alert     */
      case MAT_IST_COMMAND:          /* IST Command   */
      {
         *evntType = MAT_EVTCALLMGMTIND;
         break;
      }
#endif
#if (MAP_HLR)
      case MAT_ANY_SUBSDATA_INTER:          /* AnyTime Subscriber Interro */
      case MAT_ANY_MOD:          /* AnyTime Modification */
      case MAT_NOTE_SUBSDATA_MOD:          /* Note Subs Data Modified */
      {
         *evntType = MAT_EVTLOCMGMTIND;
         break;
      }
#endif
#endif
#endif
      case MAT_UPLOC:
      case MAT_CANCELLOC:
      case MAT_PURGE:
      case MAT_SNDID:
      case MAT_GPRS_UPLOC:
         *evntType = MAT_EVTLOCMGMTIND;
         break;
      case MAT_PRE_HO:
      case MAT_PRE_SUBSHO:
      case MAT_PER_HO:
      case MAT_PER_SUBSHO:
      case MAT_SNDENDSIG:
      case MAT_PROCACCSIG:
      case MAT_FWDACCSIG:
         *evntType = MAT_EVTHOMGMTIND;
         break;
      case MAT_AUTHINFO:
         *evntType = MAT_EVTAUTHMGMTIND;
         break;
      case MAT_CHKIMEI:
         *evntType = MAT_EVTIMEIMGMTIND;
         break;
      case MAT_RESET:
      case MAT_RESTOREDATA:
      case MAT_FWDCHKSSIND:
         *evntType = MAT_EVTFRMGMTIND;
         break;
      case MAT_ACTVTRACE:
      case MAT_DACTVTRACE:
      case MAT_SNDIMSI:
      case MAT_TRACESUBSACTV:
      case MAT_NOTEINTERHO:
         *evntType = MAT_EVTOAMMGMTIND;
         break;
      case MAT_ROUTINFO:
      case MAT_PROVROAMNMB:
      case MAT_PROV_SIWFS_NMB:
      case MAT_SIWFS_SIGMOD:
      case MAT_RESCALLHANDL:
      case MAT_SETRPTSTATE:
      case MAT_STARPT:
      case MAT_RMTUSRFREE:
      case MAT_PREP_GRPCALL:
      case MAT_SND_GRPCALLENDSIG:
      case MAT_PRO_GRPCALLSIG:
      case MAT_FWD_GRPCALLSIG:
         *evntType = MAT_EVTCALLMGMTIND;
         break;
      case MAT_REGSS:
      case MAT_ERASESS:
      case MAT_ACTVSS:
      case MAT_DACTVSS:
      case MAT_INTERSS:
      case MAT_PROCUSSDATA:
      case MAT_PROCUSSREQ:
      case MAT_USSREQ:
      case MAT_USSNOTIFY:
      case MAT_REGPASSWD:
      case MAT_GETPASSWD:
      case MAT_REGCCENT:
      case MAT_ERASECCENT:
         *evntType = MAT_EVTSSMGMTIND;
         break;
      case MAT_SSINV_NOTIFY:
      case MAT_FWDSM:
      case MAT_ROUTINFOSM:
      case MAT_MT_FWDSM:
      case MAT_SMDEL:
      case MAT_INFSC:
      case MAT_ALRTSC:
      case MAT_SMRDY:
      case MAT_NOTSUBPRES:
      case MAT_ALRTSCWRSLT:
         *evntType = MAT_EVTSMMGMTIND;
         break;
      case MAT_INSSUBSDATA:
      case MAT_DELSUBSDATA:
      case MAT_PROVSUBSINFO:
      case MAT_ANY_INTER:
      case MAT_SNDPARAM:
         *evntType = MAT_EVTSUBMGMTIND;
         break;
      case MAT_GPRS_ROUTINFO:
      case MAT_FAILRPT:
      case MAT_GPRS_NOTEMSPRES:
         *evntType = MAT_EVTPDPACTVIND;
         break;
   } /* end of switch */
   RETVALUE(ROK);
} /* maAccGetIndType */


/*
*
*       Fun:   maAccGetCfmType
*
*       Desc:  get the primitive type based on the operation code
*
*       Ret:   ROK      
*
*       Notes: 
*
*       File:  ma_acc2.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccGetCfmType
(
U8          oprCode,          /* Operation Code */
U8          *evntType         /* Event Type */
)
#else
PUBLIC S16 maAccGetCfmType(oprCode, evntType)
U8          oprCode;          /* Operation Code */
U8          *evntType;        /* Event Type */
#endif
{
   TRC2(maAccGetCfmType)
   switch(oprCode)
   {
/* New Operations */
#if (MAP_HLR || MAP_MLC)
      case MAT_SENDROUTINFOFORLCS:          /* RoutInfo For LCS */
      {
         *evntType = MAT_EVTLOCSERVCFM;
         break;
      }
#endif

#if (MAP_MSC || MAP_MLC || (MAP_REL99 && MAP_REL4 && MAP_GSN))
      case MAT_PROVSUBSLOC:          /* Provide Subscriber Location */
      case MAT_SUBSLOCRPT:          /* Subscriber Location Report */
      {
         *evntType = MAT_EVTLOCSERVCFM;
         break;
      }
#endif
#if (MAP_REL99)
#if (MAP_VLR || MAP_HLR || MAP_GSN)
      case MAT_AUTHFAILRPT:          /* MaAuthFailRpt */
      {
         *evntType = MAT_EVTAUTHMGMTCFM;
         break;
      }
#endif
#if (MAP_VLR || MAP_HLR || MAP_GSN)
      case MAT_NOTE_MMEVT:          /* Note Mm Event  */
      {
         *evntType = MAT_EVTLOCMGMTCFM;
         break;
      }
#endif
#if (MAP_MSC || MAP_HLR)
      case MAT_IST_ALERT:          /* IST Alert     */
      case MAT_IST_COMMAND:          /* IST Command   */
      {
         *evntType = MAT_EVTCALLMGMTCFM;
         break;
      }
#endif
#if (MAP_HLR)
      case MAT_ANY_SUBSDATA_INTER:          /* AnyTime Subscriber Interro */
      case MAT_ANY_MOD:          /* AnyTime Modification */
      case MAT_NOTE_SUBSDATA_MOD:          /* Note Subs Data Modified */
      {
         *evntType = MAT_EVTSUBMGMTCFM;
         break;
      }
#endif
#endif
      case MAT_UPLOC:
      case MAT_CANCELLOC:
      case MAT_PURGE:
      case MAT_SNDID:
      case MAT_GPRS_UPLOC:
         *evntType = MAT_EVTLOCMGMTCFM;
         break;
      case MAT_PRE_HO:
      case MAT_PRE_SUBSHO:
      case MAT_PER_HO:
      case MAT_PER_SUBSHO:
      case MAT_SNDENDSIG:
      case MAT_PROCACCSIG:
      case MAT_FWDACCSIG:
         *evntType = MAT_EVTHOMGMTCFM;
         break;
      case MAT_AUTHINFO:
         *evntType = MAT_EVTAUTHMGMTCFM;
         break;
      case MAT_CHKIMEI:
         *evntType = MAT_EVTIMEIMGMTCFM;
         break;
      case MAT_RESET:
      case MAT_RESTOREDATA:
      case MAT_FWDCHKSSIND:
         *evntType = MAT_EVTFRMGMTCFM;
         break;
      case MAT_ACTVTRACE:
      case MAT_DACTVTRACE:
      case MAT_SNDIMSI:
      case MAT_TRACESUBSACTV:
      case MAT_NOTEINTERHO:
         *evntType = MAT_EVTOAMMGMTCFM;
         break;
      case MAT_ROUTINFO:
      case MAT_PROVROAMNMB:
      case MAT_PROV_SIWFS_NMB:
      case MAT_SIWFS_SIGMOD:
      case MAT_RESCALLHANDL:
      case MAT_SETRPTSTATE:
      case MAT_STARPT:
      case MAT_RMTUSRFREE:
      case MAT_PREP_GRPCALL:
      case MAT_SND_GRPCALLENDSIG:
      case MAT_PRO_GRPCALLSIG:
      case MAT_FWD_GRPCALLSIG:
         *evntType = MAT_EVTCALLMGMTCFM;
         break;
      case MAT_REGSS:
      case MAT_ERASESS:
      case MAT_ACTVSS:
      case MAT_DACTVSS:
      case MAT_INTERSS:
      case MAT_PROCUSSDATA:
      case MAT_PROCUSSREQ:
      case MAT_USSREQ:
      case MAT_USSNOTIFY:
      case MAT_REGPASSWD:
      case MAT_GETPASSWD:
      case MAT_REGCCENT:
      case MAT_ERASECCENT:
         *evntType = MAT_EVTSSMGMTCFM;
         break;
      case MAT_SSINV_NOTIFY:
      case MAT_FWDSM:
      case MAT_ROUTINFOSM:
      case MAT_MT_FWDSM:
      case MAT_SMDEL:
      case MAT_INFSC:
      case MAT_ALRTSC:
      case MAT_SMRDY:
      case MAT_NOTSUBPRES:
      case MAT_ALRTSCWRSLT:
         *evntType = MAT_EVTSMMGMTCFM;
         break;
      case MAT_INSSUBSDATA:
      case MAT_DELSUBSDATA:
      case MAT_PROVSUBSINFO:
      case MAT_ANY_INTER:
      case MAT_SNDPARAM:
         *evntType = MAT_EVTSUBMGMTCFM;
         break;
      case MAT_GPRS_ROUTINFO:
      case MAT_FAILRPT:
      case MAT_GPRS_NOTEMSPRES:
         *evntType = MAT_EVTPDPACTVCFM;
         break;
   } /* end of Switch */
   RETVALUE(ROK);
} /* maAccGetCfmType */


/* ----------------------------------------------------------------- */
/* Layer Management Tests                                            */
/*                                                                   */
/* These tests do not check the validity of all primitive actions.   */
/* The data would need to be visually examined in certain tests      */
/* to determine the success or the failure of a primitive action.    */
/* As an example, the control request to turn on debug printing      */
/* relies on the test executor to visually verify the correctness    */
/* of the primitive action.                                          */
/*                                                                   */
/* ----------------------------------------------------------------- */


/*
*
*       Fun:       maAccTst17
*
*       Desc:      MAP test #18
*            
*       Ret:       ROK - Success RFAILED - failure.
*              
*       Notes:     Tests for testing the different dialogue id ranges.
*                  (configuration, unconfiguration )
*
*       File:      ma_acc2.c
*
*/
#ifdef ANSI
PUBLIC S16 maAccTst17
(
Void
)
#else
PUBLIC S16 maAccTst17(Void)
#endif
{
   MaAccMsgQElm  *msg;             /* queue message to be returned */

   TRC2(maAccTst17)

   if (maAccCb.curTst.init!=TRUE)
   {
      maAccCb.curTst.init = TRUE;
   }

   switch(maAccCb.curTst.state)
   {
      /* Shut Down the Whole layer */
      case 0:
         maAccCb.curTst.state++;
         if(maAccCb.cfgDone == FALSE)
         {
            break;
         }
#ifdef ZJ

         zjAccCntrlReq(MAZJGEN, LZJ_ASHUTDOWN, NOTUSED, NOTUSED, NOTUSED,
                       MAACC_TRANSID1, CMFTHA_RES_RSETID, 1, FALSE);
#endif /* ZJ */
         (Void)maAccCntrlReq((SuId) 0, STMATGEN, ASHUTDOWN, 0, 0, 0);
         break;
 
      /* Try to send general configuration once more */
      case 1:
         maAccCb.curTst.state++;
         (Void)maAccGenCfg(ENTMA, 
                           TSTINST_0, 
                           MA_ACC_MAX_SAPS, 
                           MA_ACC_MAX_DLGS,
                           MA_ACC_MAX_OPRS,
                           0,200);
 
#ifdef ZJ
         /* Configure PSF */
         zjAccGenCfg(ZJACC_UPDMSG_SIZE, MAACC_TRANSID1, TRUE);

         zjAccCntrlReq(MAZJRSET, LZJ_AGO_ACT, NOTUSED, TRUE, NOTUSED,
                       MAACC_TRANSID1, CMFTHA_RES_RSETID, 1, FALSE);
#endif /* ZJ */
         /* 
         ** Should receive the alarm with event code = 3, watch for the
         ** alarm print on the display , If Layer Manager interface-3 
         ** flag is not defined.
         ** Otherwise we should get the config Cfm With Status Not OK
         */
         break;

      /* send control request to MAP to enable the alarms */
      case 2:
         maAccCb.curTst.state++;
         maAccCntrlReq(0, STGEN, AENA, SAUSTA, 0, 0);
         break;
 
 
      /* Try to configure SAP_0 which is already configured */
      case 3:
         maAccCb.curTst.state++;
         maAccMASapCfg(MA_ACC_SAP_0, 0, 0, 1, 100, 0);
 
         /* 
         ** Should receive the alarm with event code = 1, watch for the
         ** alarm print on the display , If Layer Manager interface-3 
         ** flag is not defined.
         ** Otherwise we should get the config Cfm With Status Not OK
         */
 
         break;


      /* Configure a new SAP */
      case 4:
         maAccCb.curTst.state++;
         (Void) maAccMASapCfg(MA_ACC_SAP_1, 0, 0, 1, 100, 0);
 
         /* Watch for the layer management alarm print declaring SAP config
            OK, Status code = 8 */
 
         break;
 
      case 5:
         maAccCb.curTst.state++;
         /* Bind to Sap_0 */
         AuLiMatBndReq(&maAccCb.uiPst, (SuId)MA_ACC_SAP_0, (SpId)MA_ACC_SAP_0);
         break;

      case 6:
         maAccCb.curTst.state++;
         /* Receive the first bind confirm primitives */
         if (maAccPopMsgQ(&msg) != ROK)
         {
            MAACCPRNERROR((prntBuf, "maAccCfgMaTst: Queue is !!EMPTY\n"));
            RETVALUE(RFAILED);
         }

         /* Check for the event */
         if ((msg->evtType != MA_ACC_EVT_BND_CFM) ||
             ((SuId)MA_ACC_SAP_0 != msg->suId))
         {
            MAACCPRNERROR((prntBuf,                                      \
                           "maAccCfgMaTst:Incorrect Bind Confirm Event.. \
                            SuId(%d)..MsgType(%d)\n",                    \
                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -