wdp.c

来自「是一个手机功能的模拟程序」· C语言 代码 · 共 1,835 行 · 第 1/5 页

C
1,835
字号
      z_WDPpckg_8_SegmentationTerminated, TO_PROCESS(WDPmanagement,
      z47_WDPmanagement), 0, "SegmentationTerminated")
    XBETWEEN_SYMBOLS(19, 5380, 354)

/*-----
* OUTPUT ReassembleTerminated
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\terminateanswer.smc(1),293(80,70),1)
------*/
    ALLOC_SIGNAL_NPAR(ReassembleTerminated, z_WDPpckg_7_ReassembleTerminated,
      XSIGNALHEADERTYPE)
    SDL_OUTP_NPAR(xDefaultPrioSignal, ReassembleTerminated,
      z_WDPpckg_7_ReassembleTerminated, TO_PROCESS(WDPmanagement,
      z47_WDPmanagement), 0, "ReassembleTerminated")
    XBETWEEN_SYMBOLS(20, 5381, 365)

/*-----
* NEXTSTATE -
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(1),1799(120,130),1)
------*/
    XAT_LAST_SYMBOL
    SDL_DASH_NEXTSTATE

/*-----
* INPUT TDUnitdataReq
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),128(75,60),1)
------*/
  case 3:
    XDEBUG_LABEL(IDLE_TDUnitdataReq)
    XAT_FIRST_SYMBOL(3, 5364)
    XOS_TRACE_INPUT("TDUnitdataReq")
    yAssF_TDUnitdataReqType(yVarP->z46G_dataReq,
      ((yPDef_z_WDP_UpperLayer_0_TDUnitdataReq *)ySVarP)->Param1, XASS);
    yAssF_SDL_PId(yVarP->z46J_upperlayerPId,
      ((yPDef_z_WDP_UpperLayer_0_TDUnitdataReq *)ySVarP)->Param2, XASS);
    yAssF_SDL_Natural(yVarP->z46K_stackconfig, yTstA_SDL_Natural(
      ((yPDef_z_WDP_UpperLayer_0_TDUnitdataReq *)ySVarP)->Param3), XASS);
    XBETWEEN_SYMBOLS(21, 5382, 388)

/*-----
* TASK log internal
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),3191(75,75),1)
------*/
#ifdef XTRACE
    xTraceTask("log internal");
#endif
#if defined LOG_INTERNAL
{
char *logstr;
char *strPDU;
char *strparam1;

logstr = OctetString2HexString(yVarP->
  z46G_dataReq.SourceAddress.Address.data, yVarP->
  z46G_dataReq.SourceAddress.Address.length);
CLNTa_log(0, 0, "WDP Receive TDUnitDataReq: Source Address = %s\n", logstr);
OSConnectorFree(logstr);

logstr = OctetString2HexString(yVarP->
  z46G_dataReq.SourceAddress.SecondAddress.data, yVarP->
  z46G_dataReq.SourceAddress.SecondAddress.length);
CLNTa_log(0, 0, "WDP Receive TDUnitDataReq: Source SecondAddress = %s\n", logstr);
OSConnectorFree(logstr);

CLNTa_log(0, 0, "WDP: Source Bearer = %d\n", yVarP->
  z46G_dataReq.SourceAddress.Bearer);

CLNTa_log(0, 0, "WDP: Source SecondAddressFormat= %d\n", yVarP->
  z46G_dataReq.SourceAddress.SecondAddressFormat);

CLNTa_log(0, 0, "WDP: Source PortNumber = %d\n", yVarP->
  z46G_dataReq.SourceAddress.PortNumber);

logstr = OctetString2HexString(yVarP->
  z46G_dataReq. DestinationAddress.Address.data, yVarP->
  z46G_dataReq. DestinationAddress.Address.length);
CLNTa_log(0, 0, "WDP Receive TDUnitDataReq: Destination Address = %s\n", logstr);
OSConnectorFree(logstr);

logstr = OctetString2HexString(yVarP->
  z46G_dataReq. DestinationAddress.SecondAddress.data, yVarP->
  z46G_dataReq. DestinationAddress.SecondAddress.length);
CLNTa_log(0, 0, "WDP Receive TDUnitDataReq: Destination SecondAddress = %s\n", logstr);
OSConnectorFree(logstr);

CLNTa_log(0, 0, "WDP: DesinationBearer = %d\n", yVarP->
  z46G_dataReq.DestinationAddress.Bearer);

CLNTa_log(0, 0, "WDP: DesinationSecondAddressFormat= %d\n", yVarP->
  z46G_dataReq.DestinationAddress.SecondAddressFormat);

CLNTa_log(0, 0, "WDP: DesinationPortNumber = %d\n", yVarP->
  z46G_dataReq.DestinationAddress.PortNumber);

CLNTa_log(0, 0, "WDP: StackConfig = %d\n", yVarP->z46K_stackconfig);

strPDU = pdubuf_getStart( yVarP->z46G_dataReq.UserData );
strparam1 = OctetString2HexString((CHAR*)strPDU,pdubuf_getLength(yVarP->
  z46G_dataReq.UserData));

CLNTa_log(0,0, "WDP data %s\n", strparam1?strparam1:"");
DEALLOC(&strparam1);
}
#endif

    XBETWEEN_SYMBOLS(22, 5383, 456)

/*-----
* ASSIGNMENT srcAddr := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),2525(75,90),1)
------*/
    yAssF_DeviceAddress(yVarP->z469_srcAddr, yVarP->z46G_dataReq.SourceAddress.
      Address, XASS);
#ifdef XTRACE
    xTraceAssign("srcAddr := ");
#endif
    XBETWEEN_SYMBOLS(23, 5384, 467)

/*-----
* DECISION
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),599(75,105),1)
------*/
#ifdef XTRACE
    yAssF_SDL_Boolean(yDcn_SDL_Boolean,
      xAnd_SDL_Boolean((xLT_SDL_Integer(z_WDPpckg_N_MinDestPortNo, yVarP->
      z46G_dataReq.DestinationAddress.PortNumber)), (xLT_SDL_Integer(yVarP->
      z46G_dataReq.DestinationAddress.PortNumber, z_WDPpckg_O_MaxDestPortNo))),
      XASS);
    if (yDcn_SDL_Boolean) {
#else
    if (xAnd_SDL_Boolean((xLT_SDL_Integer(z_WDPpckg_N_MinDestPortNo, yVarP->
      z46G_dataReq.DestinationAddress.PortNumber)), (xLT_SDL_Integer(yVarP->
      z46G_dataReq.DestinationAddress.PortNumber,
      z_WDPpckg_O_MaxDestPortNo)))) {
#endif
#ifdef XTRACE
    xTraceDecision("TRUE");
#endif
      XBETWEEN_SYMBOLS(24, 5385, 489)

/*-----
* DECISION
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),617(75,125),1)
------*/
#ifdef XTRACE
      yAssF_SDL_Boolean(yDcn_SDL_Boolean,
        xAnd_SDL_Boolean((xLE_SDL_Integer(z_WDPpckg_L_MinSourcePortNo, yVarP->
        z46G_dataReq.SourceAddress.PortNumber)), (xLT_SDL_Integer(yVarP->
        z46G_dataReq.SourceAddress.PortNumber, z_WDPpckg_M_MaxSourcePortNo))),
        XASS);
      if (yDcn_SDL_Boolean) {
#else
      if (xAnd_SDL_Boolean((xLE_SDL_Integer(z_WDPpckg_L_MinSourcePortNo, yVarP->
        z46G_dataReq.SourceAddress.PortNumber)), (xLT_SDL_Integer(yVarP->
        z46G_dataReq.SourceAddress.PortNumber, z_WDPpckg_M_MaxSourcePortNo)))) {
#endif
#ifdef XTRACE
      xTraceDecision("TRUE");
#endif
        XBETWEEN_SYMBOLS(25, 5386, 510)

/*-----
* DECISION
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),635(75,145),1)
------*/
#ifdef XTRACE
        yAssF_SDL_Integer(yDcn_SDL_Integer, devaddr_getlen(&(yVarP->
          z46G_dataReq.DestinationAddress.Address)), XASS);
        if (yEqF_SDL_Integer(yDcn_SDL_Integer, SDL_INTEGER_LIT(0))) {
#else
        if (yEqF_SDL_Integer(devaddr_getlen(&(yVarP->z46G_dataReq.
          DestinationAddress.Address)), SDL_INTEGER_LIT(0))) {
#endif
#ifdef XTRACE
        xTraceDecision("PATH: Integer");
#endif
            /* Null transition */
        } else {
#ifdef XTRACE
        xTraceDecision("ELSE");
#endif
          XBETWEEN_SYMBOLS(26, 5387, 532)

/*-----
* DECISION
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),788(75,165),1)
------*/
#ifdef XTRACE
          yAssF_SDL_Integer(yDcn_SDL_Integer, PDU_getLen(yVarP->z46G_dataReq.
            UserData), XASS);
          if (yEqF_SDL_Integer(yDcn_SDL_Integer, SDL_INTEGER_LIT(0))) {
#else
          if (yEqF_SDL_Integer(PDU_getLen(yVarP->z46G_dataReq.UserData),
            SDL_INTEGER_LIT(0))) {
#endif
#ifdef XTRACE
          xTraceDecision("PATH: Integer");
#endif
              /* Null transition */
          } else {
#ifdef XTRACE
          xTraceDecision("ELSE");
#endif
            XBETWEEN_SYMBOLS(27, 5388, 554)

/*-----
* DECISION
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),137(75,185),1)
------*/
            yAssF_SDL_Octet(yVarP->yDcn_SDL_Octet, yVarP->z46G_dataReq.
              DestinationAddress.Bearer, XASS);
            if (yEqF_SDL_Octet(yVarP->yDcn_SDL_Octet, xI2O_SDL_Octet(
                  BEARER_ANY_UDP)) ||
                yEqF_SDL_Octet(yVarP->yDcn_SDL_Octet, xI2O_SDL_Octet(
                  BEARER_GSM_CSD)) ||
                yEqF_SDL_Octet(yVarP->yDcn_SDL_Octet, xI2O_SDL_Octet(
                  BEARER_GSM_GPRS)) ||
                yEqF_SDL_Octet(yVarP->yDcn_SDL_Octet, xI2O_SDL_Octet(
              BEARER_BT))) {
#ifdef XTRACE
            xTraceDecision("PATH: I2O");
#endif
              XBETWEEN_SYMBOLS(28, 5389, 573)

/*-----
* ASSIGNMENT srcPort := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1151(75,225),2)
------*/
              yAssF_SDL_Integer(yVarP->z46B_srcPort, yVarP->z46G_dataReq.
                SourceAddress.PortNumber, XASS);
#ifdef XTRACE
              xTraceAssign("srcPort := ");
#endif
              XBETWEEN_STMTS(29, 5390, 584)

/*-----
* ASSIGNMENT dstPort := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1151(75,225),3)
------*/
              yAssF_SDL_Integer(yVarP->z46C_dstPort, yVarP->z46G_dataReq.
                DestinationAddress.PortNumber, XASS);
#ifdef XTRACE
              xTraceAssign("dstPort := ");
#endif
              XBETWEEN_STMTS(30, 5391, 595)

/*-----
* ASSIGNMENT dstAddr := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1151(75,225),4)
------*/
              yAssF_DeviceAddress(yVarP->z468_dstAddr, yVarP->z46G_dataReq.
                DestinationAddress.Address, XASS);
#ifdef XTRACE
              xTraceAssign("dstAddr := ");
#endif
              XBETWEEN_STMTS(31, 5392, 606)

/*-----
* ASSIGNMENT viewID := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1151(75,225),5)
------*/
              yAssF_SDL_Octet(yVarP->z46M_viewID, yVarP->z46G_dataReq.
                DestinationAddress.ViewID, XASS);
#ifdef XTRACE
              xTraceAssign("viewID := ");
#endif
              XBETWEEN_STMTS(32, 5393, 617)

/*-----
* ASSIGNMENT channelID := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1151(75,225),6)
------*/
              yAssF_SDL_Octet(yVarP->z46N_channelID, yVarP->z46G_dataReq.
                DestinationAddress.ChannelID, XASS);
#ifdef XTRACE
              xTraceAssign("channelID := ");
#endif
              XBETWEEN_SYMBOLS(33, 5394, 628)
              {

/*-----
* CALL wdp_porttbl_update
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),3254(75,240),1)
------*/
#ifdef XTRACE
                xTraceAlg("CALL EXTERNAL PROCEDURE wdp_porttbl_update");
#endif
#ifdef XMSCE
                xMSCETask("CALL EXTERNAL wdp_porttbl_update");
#endif
                wdp_porttbl_update(yVarP->z46B_srcPort, yVarP->
                  z46J_upperlayerPId, yTstA_SDL_Natural(yVarP->
                  z46K_stackconfig), yVarP->z46G_dataReq.DestinationAddress.
                  Bearer, yVarP->z46M_viewID, yVarP->z46N_channelID);
              }
              XBETWEEN_SYMBOLS(34, 5395, 646)

/*-----
* TASK sendRequest
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1463(75,255),1)
------*/
#ifdef XTRACE
              xTraceTask("sendRequest");
#endif
  UDPa_sendRequest (pdubuf_getStart (yVarP->z46G_dataReq.UserData),
                    pdubuf_getLength (yVarP->z46G_dataReq.UserData),
                    yVarP->z468_dstAddr.data, (INT8)yVarP->z468_dstAddr.length,
                    yVarP->z469_srcAddr.data, (INT8)yVarP->z469_srcAddr.length,
                    (UINT16)yVarP->z46C_dstPort, (UINT16)yVarP->z46B_srcPort,
                    yVarP->z46M_viewID, yVarP->z46N_channelID);

              XBETWEEN_SYMBOLS(35, 5396, 662)

/*-----
* TASK log external
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),2180(75,270),1)
------*/
#ifdef XTRACE
              xTraceTask("log external");
#endif
#if defined LOG_EXTERNAL
  CLNTa_log (0, log_wdp_sendUDP, "UDPa_sendRequest");
#endif

              XBETWEEN_SYMBOLS(36, 5397, 675)

/*-----
* TASK log internal
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),3233(75,285),1)
------*/
#ifdef XTRACE
              xTraceTask("log internal");
#endif
#if defined LOG_INTERNAL
{
char *logstr;

logstr = OctetString2HexString(yVarP->z469_srcAddr.data, yVarP->
  z469_srcAddr.length);
CLNTa_log(0, 0, "WDP UDPsendReq Source Address = %s\n", logstr);
OSConnectorFree(logstr);

CLNTa_log(0, 0, "WDP: Source PortNumber = %d\n", yVarP->z46B_srcPort);

logstr = OctetString2HexString(yVarP->z468_dstAddr.data, yVarP->
  z468_dstAddr.length);
CLNTa_log(0, 0, "WDP: Destination Address = %s\n", logstr);
OSConnectorFree(logstr);

CLNTa_log(0, 0, "WDP: DesinationPortNumber = %d\n", yVarP->z46C_dstPort);

logstr = OctetString2HexString (pdubuf_getStart (yVarP->z46G_dataReq.UserData),
                                pdubuf_getLength (yVarP->
  z46G_dataReq.UserData));
CLNTa_log(0,0, "WDP data %s\n", logstr);
OSConnectorFree(logstr);
}
#endif

              XBETWEEN_SYMBOLS(37, 5398, 710)

/*-----
* ASSIGNMENT ok := ...
* #SDTREF(SDL,D:\WIP\Maintenance\4.x\System\SystemConfigurations\base_co\sdl\wdp\wdphandler.spr(2),1157(75,300),1)
------*/
              yAssF_SDL_Boolean(yVarP->z46F_ok, PDU_rel(&(yVarP->z46G_dataReq.
                UserData)), XASS);
#ifdef XTRACE

⌨️ 快捷键说明

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