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

📄 parc_sfun_c1.c

📁 CDMA移动通信系统中一种速率功率联合控制方法
💻 C
📖 第 1 页 / 共 5 页
字号:
          enter_atomic_m0_c1_s2_Clear();
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
          break;
         case IN_m0_c1_s8_Rate0:
          CV_STATE_EVAL(8,0,7);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,9);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,9,0);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,25);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,25);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,25);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,29);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,29);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,29);
          exit_atomic_m0_c1_s8_Rate0();
          enter_atomic_m0_c1_s2_Clear();
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,9);
          break;
         case IN_m0_c1_s9_Rate1:
          CV_STATE_EVAL(8,0,8);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,10);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,10,0);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,22);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,22);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,22);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,29);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,29);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,29);
          exit_atomic_m0_c1_s9_Rate1();
          enter_atomic_m0_c1_s2_Clear();
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,10);
          break;
         case IN_m0_c1_s10_RateControl:
          CV_STATE_EVAL(8,0,9);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,14);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,14,0);
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,8);
          if(CV_TRANSITION_EVAL(8,
            _SFD_CCP_CALL(8,0,(chartInstance.LocalData.m0_c1_d4_Num0 ==
              chartInstance.LocalData.m0_c1_d5_Num1)))) {
            if(sf_debug_transition_conflict_check_enabled()) {
              unsigned int transitionList[3];
              unsigned int numTransitions=1;
              transitionList[0] = 8;
              sf_debug_transition_conflict_check_begin();
              if(chartInstance.LocalData.m0_c1_d4_Num0 >
               chartInstance.LocalData.m0_c1_d5_Num1) {
                transitionList[numTransitions] = 5;
                numTransitions++;
              }
              if(chartInstance.LocalData.m0_c1_d4_Num0 <
               chartInstance.LocalData.m0_c1_d5_Num1) {
                transitionList[numTransitions] = 28;
                numTransitions++;
              }
              sf_debug_transition_conflict_check_end();
              if(numTransitions>1) {
                _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
              }
            }
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,8);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,8);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,8);
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,29);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,29);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,29);
            exit_atomic_m0_c1_s10_RateControl();
            enter_atomic_m0_c1_s2_Clear();
          } else {
            _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,5);
            if(CV_TRANSITION_EVAL(5,
              _SFD_CCP_CALL(5,0,(chartInstance.LocalData.m0_c1_d4_Num0 >
                chartInstance.LocalData.m0_c1_d5_Num1))
              )) {
              if(sf_debug_transition_conflict_check_enabled()) {
                unsigned int transitionList[2];
                unsigned int numTransitions=1;
                transitionList[0] = 5;
                sf_debug_transition_conflict_check_begin();
                if(chartInstance.LocalData.m0_c1_d4_Num0 <
                 chartInstance.LocalData.m0_c1_d5_Num1) {
                  transitionList[numTransitions] = 28;
                  numTransitions++;
                }
                sf_debug_transition_conflict_check_end();
                if(numTransitions>1) {
                  _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
                }
              }
              _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,5);
              _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,5);
              _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,5);
              _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,15);
              if(CV_TRANSITION_EVAL(15,
                _SFD_CCP_CALL(15,0,(chartInstance.LocalData.m0_c1_d9_Rate_Case
                  == 3.0)))) {
                _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,15);
                _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,15);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,15);
                exit_atomic_m0_c1_s10_RateControl();
                _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,7);
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,7,0);
                chartInstance.State.is_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_6_6_4
                = IN_m0_c1_s6_P1;
                _SFD_CS_CALL(STATE_ACTIVE_TAG,7);
                _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,7);
                sf_mex_printf("%s =\n", "Sum_Power_Bit_Corrections");
                chartInstance.LocalData.m0_c1_d11_Sum_Power_Bit_Corrections +=
                  2.0;
                __sfTemp2 =
                  chartInstance.LocalData.m0_c1_d11_Sum_Power_Bit_Corrections;
                ml_call_function("disp", 0, 1, 4,
                 sf_mex_create_mx_array(&__sfTemp2, 0, 0, 0));
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,7,1);
                chartInstance.LocalData.m0_c1_d9_Rate_Case = 2.0;
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,7,2);
                OutputData_m0_c1_d17_Tx_Rate =
                  chartInstance.LocalData.m0_c1_d9_Rate_Case;
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,7,3);
                _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,7);
                _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
              } else {
                _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,19);
                _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,19);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,19);
                exit_atomic_m0_c1_s10_RateControl();
                _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,9);
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,9,0);
                chartInstance.State.is_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_6_6_4
                = IN_m0_c1_s8_Rate0;
                _SFD_CS_CALL(STATE_ACTIVE_TAG,9);
                _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,9);
                chartInstance.LocalData.m0_c1_d9_Rate_Case += 1.0;
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,9,1);
                OutputData_m0_c1_d17_Tx_Rate =
                  chartInstance.LocalData.m0_c1_d9_Rate_Case;
                _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,9,2);
                _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,9);
                _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,9);
              }
            } else {
              _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,28);
              if(CV_TRANSITION_EVAL(28,
                _SFD_CCP_CALL(28,0,(chartInstance.LocalData.m0_c1_d4_Num0 <
                  chartInstance.LocalData.m0_c1_d5_Num1)))) {
                _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,28);
                _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,28);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,28);
                _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,1);
                if(CV_TRANSITION_EVAL(1,
                  _SFD_CCP_CALL(1,0,(chartInstance.LocalData.m0_c1_d9_Rate_Case
                    == 0.0)))) {
                  _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,1);
                  _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,1);
                  _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,1);
                  exit_atomic_m0_c1_s10_RateControl();
                  _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,5);
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,5,0);
                  chartInstance.State.is_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_6_6_4
                  = IN_m0_c1_s7_P2;
                  _SFD_CS_CALL(STATE_ACTIVE_TAG,5);
                  _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,5);
                  sf_mex_printf("%s =\n", "Sum_Power_Bit_Corrections");
                  chartInstance.LocalData.m0_c1_d11_Sum_Power_Bit_Corrections -=
                    2.0;
                  __sfTemp1 =
                    chartInstance.LocalData.m0_c1_d11_Sum_Power_Bit_Corrections;
                  ml_call_function("disp", 0, 1, 4,
                   sf_mex_create_mx_array(&__sfTemp1, 0, 0, 0));
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,5,1);
                  chartInstance.LocalData.m0_c1_d9_Rate_Case = 2.0;
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,5,2);
                  OutputData_m0_c1_d17_Tx_Rate =
                    chartInstance.LocalData.m0_c1_d9_Rate_Case;
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,5,3);
                  _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,5);
                  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
                } else {
                  _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,20);
                  _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,20);
                  _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,20);
                  exit_atomic_m0_c1_s10_RateControl();
                  _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,10);
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,10,0);
                  chartInstance.State.is_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_6_6_4
                  = IN_m0_c1_s9_Rate1;
                  _SFD_CS_CALL(STATE_ACTIVE_TAG,10);
                  _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,10);
                  chartInstance.LocalData.m0_c1_d9_Rate_Case -= 1.0;
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,10,1);
                  OutputData_m0_c1_d17_Tx_Rate =
                    chartInstance.LocalData.m0_c1_d9_Rate_Case;
                  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,10,2);
                  _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,10);
                  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,10);
                }
              }
            }
          }
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,14);
          break;
         case IN_m0_c1_s11_Wait1:
          CV_STATE_EVAL(8,0,10);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,12);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,12,0);
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,16);
          if(CV_TRANSITION_EVAL(16, _SFD_CCP_CALL(16,0,(_sfEvent_ ==
              event_m0_c1_e21_PCG_Clock)) && _SFD_CCP_CALL(16,1,(
              chartInstance.Counters.i1 >= 7)))) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,16);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,16);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,16);
            exit_atomic_m0_c1_s11_Wait1();
            enter_atomic_m0_c1_s3_Conversation_6_6_4_3_1();
          }
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,12);
          break;
         default:
          CV_STATE_EVAL(8,0,0);
          break;
        }
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,8);
      break;
     case IN_m0_c1_s12_Mobile_Station_Idle_State_6_6_2:
      CV_CHART_EVAL(0,0,2);
      _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,0);
      _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,0,0);
      _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,7);
      if(CV_TRANSITION_EVAL(7, _SFD_CCP_CALL(7,0,(_sfEvent_ ==
          event_m0_c1_e19_Start_Access)))) {
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,7);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,7);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,7);
        exit_atomic_m0_c1_s12_Mobile_Station_Idle_State_6_6_2();
        _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,4);
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,0);
        chartInstance.State.is_parc_sfun_c1 = IN_m0_c1_s13_System_Access_6_6_3;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,4);
        _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,4);
        chartInstance.LocalData.m0_c1_d2_Input_Power =
          InputData_m0_c1_d13_Current_Input_Power;
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,1);
        chartInstance.LocalData.m0_c1_d10_Sum_Access_Probe_Corrections = 0.0;
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,2);
        chartInstance.LocalData.m0_c1_d6_Num_Access_Probes = 0.0;
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,3);
        _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,4);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,14);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,14);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,14);
        enter_atomic_m0_c1_s14_Access_Probe();
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
      break;
     case IN_m0_c1_s13_System_Access_6_6_3:
      CV_CHART_EVAL(0,0,3);
      _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,4);
      _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,4,0);
      _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,17);
      if(CV_TRANSITION_EVAL(17, _SFD_CCP_CALL(17,0,(_sfEvent_ ==
          event_m0_c1_e20_BS_Response)))) {
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,17);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,17);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,17);
        exit_internal_m0_c1_s13_System_Access_6_6_3();
        exit_atomic_m0_c1_s13_System_Access_6_6_3();
        _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,17);
        OutputData_m0_c1_d15_Access_Tx_Enable = 0.0;
        _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,17,0);
        _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,17);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,17);
        enter_atomic_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_6_6_4();
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,6);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,6);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,6);
        _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,12);
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,12,0);
        chartInstance.State.is_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_6_6_4
        = IN_m0_c1_s11_Wait1;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,12);
        chartInstance.Counters.i1 = 0;
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,12);
      } else {
        switch(chartInstance.State.is_m0_c1_s13_System_Access_6_6_3) {
         case IN_m0_c1_s14_Access_Probe:
          CV_STATE_EVAL(4,0,1);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,13);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,13,0);
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,12);
          if(CV_TRANSITION_EVAL(12, _SFD_CCP_CALL(12,0,(_sfEvent_ ==
              event_m0_c1_e23_MS_Clock)) && _SFD_CCP_CALL(12,1,(
              chartInstance.Counters.i2 >= 2)))) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,12);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,12);
            _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,12);
            chartInstance.LocalData.m0_c1_d10_Sum_Access_Probe_Corrections +=
              chartInstance.LocalData.m0_c1_d8_Pwr_Step;
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,12,0);
            chartInstance.LocalData.m0_c1_d6_Num_Access_Probes += 1.0;
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,12,1);
            _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,12);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
            _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,23);
            if(CV_TRANSITION_EVAL(23,
              _SFD_CCP_CALL(23,0,(chartInstance.LocalData.m0_c1_d6_Num_Access_Probes
                >=
                chartInstance.LocalData.m0_c1_d7_Num_Step)))) {
              _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,23);
              _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,23);
              _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,23);
              exit_atomic_m0_c1_s14_Access_Probe();
              _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,6);
              _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,6,0);
              chartInstance.State.is_m0_c1_s13_System_Access_6_6_3 =
                IN_m0_c1_s15_Wait;

⌨️ 快捷键说明

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