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

📄 cdma2k_sfun_c1.c

📁 CDMA移动通信系统功率控制算法的MATLAB仿真实现
💻 C
📖 第 1 页 / 共 5 页
字号:
                _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,12);
                chartInstance.LocalData.m0_c1_d8_Sum_Power_Bit_Corrections -=
                  chartInstance.LocalData.m0_c1_d16_res;
                _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,12,0);
                _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,12);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
                enter_atomic_m0_c1_s2_Conversation_3_1();
                goto sf_label_1;
              }
            }
          }
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,8);
          if(CV_TRANSITION_EVAL(8,
            _SFD_CCP_CALL(8,0,(chartInstance.LocalData.m0_c1_d17_temp == 1.0))
            || _SFD_CCP_CALL(8,1,(
              chartInstance.LocalData.m0_c1_d17_temp == 6.0)))) {
            if(sf_debug_transition_conflict_check_enabled()) {
              unsigned int transitionList[2];
              unsigned int numTransitions=1;
              transitionList[0] = 8;
              sf_debug_transition_conflict_check_begin();
              if((chartInstance.LocalData.m0_c1_d17_temp == -1.0) ||
               (chartInstance.LocalData.m0_c1_d17_temp == -2.0) || (
                chartInstance.LocalData.m0_c1_d17_temp == -3.0) ||
               (chartInstance.LocalData.m0_c1_d17_temp == -4.0) || (
                chartInstance.LocalData.m0_c1_d17_temp == -5.0) ||
               (chartInstance.LocalData.m0_c1_d17_temp == -6.0)) {
                transitionList[numTransitions] = 22;
                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,15);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,15);
            _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,15);
            chartInstance.LocalData.m0_c1_d16_res =
              chartInstance.LocalData.m0_c1_d13_delta_p0;
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,15,0);
            _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,15);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,15);
            _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,5);
            if(CV_TRANSITION_EVAL(5,
              _SFD_CCP_CALL(5,0,(InputData_m0_c1_d18_Power_Bit != 0.0 == 0)))) {
              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(InputData_m0_c1_d18_Power_Bit != 0.0 == 1) {
                  transitionList[numTransitions] = 12;
                  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);
              exit_atomic_m0_c1_s2_Conversation_3_1();
              _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,5);
              chartInstance.LocalData.m0_c1_d8_Sum_Power_Bit_Corrections +=
                chartInstance.LocalData.m0_c1_d16_res;
              _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,5,0);
              _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,5);
              _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,5);
              enter_atomic_m0_c1_s2_Conversation_3_1();
              goto sf_label_1;
            } else {
              _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,12);
              if(CV_TRANSITION_EVAL(12,
                _SFD_CCP_CALL(12,0,(InputData_m0_c1_d18_Power_Bit != 0.0 ==
                  1)))) {
                _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,12);
                _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,12);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
                exit_atomic_m0_c1_s2_Conversation_3_1();
                _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,12);
                chartInstance.LocalData.m0_c1_d8_Sum_Power_Bit_Corrections -=
                  chartInstance.LocalData.m0_c1_d16_res;
                _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,12,0);
                _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,12);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
                enter_atomic_m0_c1_s2_Conversation_3_1();
                goto sf_label_1;
              }
            }
          }
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,22);
          if(CV_TRANSITION_EVAL(22,
            _SFD_CCP_CALL(22,0,(chartInstance.LocalData.m0_c1_d17_temp == -1.0))
            || _SFD_CCP_CALL(22,1,(
              chartInstance.LocalData.m0_c1_d17_temp == -2.0)) ||
            _SFD_CCP_CALL(22,2,(chartInstance.LocalData.m0_c1_d17_temp == -3.0))
            || _SFD_CCP_CALL(22,3,(chartInstance.LocalData.m0_c1_d17_temp ==
              -4.0)) || _SFD_CCP_CALL(22,4,(
              chartInstance.LocalData.m0_c1_d17_temp == -5.0)) ||
            _SFD_CCP_CALL(22,5,(chartInstance.LocalData.m0_c1_d17_temp == -6.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,7);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,7);
            _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,7);
            chartInstance.LocalData.m0_c1_d16_res = 0.5;
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,7,0);
            _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,7);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,7);
            _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,5);
            if(CV_TRANSITION_EVAL(5,
              _SFD_CCP_CALL(5,0,(InputData_m0_c1_d18_Power_Bit != 0.0 == 0)))) {
              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(InputData_m0_c1_d18_Power_Bit != 0.0 == 1) {
                  transitionList[numTransitions] = 12;
                  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);
              exit_atomic_m0_c1_s2_Conversation_3_1();
              _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,5);
              chartInstance.LocalData.m0_c1_d8_Sum_Power_Bit_Corrections +=
                chartInstance.LocalData.m0_c1_d16_res;
              _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,5,0);
              _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,5);
              _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,5);
              enter_atomic_m0_c1_s2_Conversation_3_1();
            } else {
              _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,12);
              if(CV_TRANSITION_EVAL(12,
                _SFD_CCP_CALL(12,0,(InputData_m0_c1_d18_Power_Bit != 0.0 ==
                  1)))) {
                _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,12);
                _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,12);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
                exit_atomic_m0_c1_s2_Conversation_3_1();
                _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,12);
                chartInstance.LocalData.m0_c1_d8_Sum_Power_Bit_Corrections -=
                  chartInstance.LocalData.m0_c1_d16_res;
                _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,12,0);
                _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,12);
                _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
                enter_atomic_m0_c1_s2_Conversation_3_1();
              }
            }
          }
          sf_label_1:;
        }
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
      break;
     case IN_m0_c1_s3_Mobile_Station_Idle_State_1:
      CV_CHART_EVAL(0,0,2);
      _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,3);
      _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,3,0);
      _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,19);
      if(CV_TRANSITION_EVAL(19, _SFD_CCP_CALL(19,0,(_sfEvent_ ==
          event_m0_c1_e24_Start_Access)))) {
        _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_s3_Mobile_Station_Idle_State_1();
        _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,4);
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,0);
        chartInstance.State.is_cdma2k_sfun_c1 = IN_m0_c1_s4_System_Access_2;
        _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_d19_Current_Input_Power;
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,1);
        chartInstance.LocalData.m0_c1_d7_Sum_Access_Probe_Corrections = 0.0;
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,2);
        chartInstance.LocalData.m0_c1_d4_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,9);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,9);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,9);
        enter_atomic_m0_c1_s5_Access_Probe();
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,3);
      break;
     case IN_m0_c1_s4_System_Access_2:
      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,18);
      if(CV_TRANSITION_EVAL(18, _SFD_CCP_CALL(18,0,(_sfEvent_ ==
          event_m0_c1_e25_BS_Response)))) {
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,18);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,18);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,18);
        exit_internal_m0_c1_s4_System_Access_2();
        exit_atomic_m0_c1_s4_System_Access_2();
        _SFD_CT_CALL(TRANSITION_BEFORE_TRANS_ACTION_TAG,18);
        OutputData_m0_c1_d22_Access_Tx_Enable = 0.0;
        _SFD_CCT_CALL(TRANSITION_TRANSITION_ACTION_COVERAGE_TAG,18,0);
        _SFD_CT_CALL(TRANSITION_AFTER_TRANS_ACTION_TAG,18);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,18);
        _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,1);
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,1,0);
        chartInstance.State.is_cdma2k_sfun_c1 =
          IN_m0_c1_s1_Mobile_Station_Control_on_the_Traffic_Channel_3;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,1);
        _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,1);
        OutputData_m0_c1_d21_Traffic_Tx_Enable = 1.0;
        _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,1,1);
        _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,1);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,21);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,21);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,21);
        enter_atomic_m0_c1_s2_Conversation_3_1();
      } else {
        switch(chartInstance.State.is_m0_c1_s4_System_Access_2) {
         case IN_m0_c1_s5_Access_Probe:
          CV_STATE_EVAL(4,0,1);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,5);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,5,0);
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,16);
          if(CV_TRANSITION_EVAL(16, _SFD_CCP_CALL(16,0,(_sfEvent_ ==
              event_m0_c1_e28_MS_Clock)) && _SFD_CCP_CALL(16,1,(
              chartInstance.Counters.i1 >= 2)))) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,16);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,16);
            _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,16);
            chartInstance.LocalData.m0_c1_d7_Sum_Access_Probe_Corrections +=
              chartInstance.LocalData.m0_c1_d6_Pwr_Step;
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,16,0);
            chartInstance.LocalData.m0_c1_d4_Num_Access_Probes += 1.0;
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,16,1);
            _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,16);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,16);
            _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,2);
            if(CV_TRANSITION_EVAL(2,
              _SFD_CCP_CALL(2,0,(chartInstance.LocalData.m0_c1_d4_Num_Access_Probes
                >=
                chartInstance.LocalData.m0_c1_d5_Num_Step)))) {
              _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,2);
              _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,2);
              _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,2);
              exit_atomic_m0_c1_s5_Access_Probe();
              _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,2);
              _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,0);
              chartInstance.State.is_m0_c1_s4_System_Access_2 = IN_m0_c1_s6_Wait;
              _SFD_CS_CALL(STATE_ACTIVE_TAG,2);
              chartInstance.Counters.i1 = 0;
              _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,2);
              OutputData_m0_c1_d22_Access_Tx_Enable = 0.0;
              _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,1);
              chartInstance.LocalData.m0_c1_d7_Sum_Access_Probe_Corrections =
                0.0;
              _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,2);
              chartInstance.LocalData.m0_c1_d4_Num_Access_Probes = 0.0;
              _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,3);
              _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,2);
              _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
            } else {
              _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,14);
              _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,14);
              _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,14);
              exit_atomic_m0_c1_s5_Access_Probe();
              enter_atomic_m0_c1_s5_Access_Probe();
            }
          }
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
          break;
         case IN_m0_c1_s6_Wait:
          CV_STATE_EVAL(4,0,2);
          _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,2);
          _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,2,0);
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,10);
          if(CV_TRANSITION_EVAL(10, _SFD_CCP_CALL(10,0,(_sfEvent_ ==
              event_m0_c1_e28_MS_Clock)) && _SFD_CCP_CALL(10,1,(
              chartInstance.Counters.i1 >= 5)))) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,10);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,10);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,10);
            exit_atomic_m0_c1_s6_Wait();
            enter_atomic_m0_c1_s5_Access_Probe();
          }
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
          break;
         default:
          CV_STATE_EVAL(4,0,0);
          break;
        }
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
      break;
     default:
      CV_CHART_EVAL(0,0,0);
      break;
    }
  }
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);

⌨️ 快捷键说明

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