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

📄 example5_sfun_c1.c

📁 MATLAB仿真技术与应用一书的配套光盘
💻 C
📖 第 1 页 / 共 4 页
字号:
        if(CV_TRANSITION_EVAL(2,_SFD_CCP_CALL(2,0,(_sfEvent_ ==
            event_c1_e9_UP)))) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,2);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,2);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,2);
          _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,0);
          _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,0,0);
          chartInstance.State.is_c1_s1_gear_state = IN_NO_ACTIVE_CHILD;
          _SFD_CS_CALL(STATE_INACTIVE_TAG,0);
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
          enter_atomic_c1_s4_second();
        }
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
        break;
       case IN_c1_s3_fourth:
        CV_STATE_EVAL(7,0,2);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,1);
        _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,1,0);
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,9);
        if(CV_TRANSITION_EVAL(9,_SFD_CCP_CALL(9,0,(_sfEvent_ ==
            event_c1_e8_DOWN)))) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,9);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,9);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,9);
          _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,1);
          _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,1,0);
          chartInstance.State.is_c1_s1_gear_state = IN_NO_ACTIVE_CHILD;
          _SFD_CS_CALL(STATE_INACTIVE_TAG,1);
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
          enter_atomic_c1_s5_third();
        }
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
        break;
       case IN_c1_s4_second:
        CV_STATE_EVAL(7,0,3);
        _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_c1_e9_UP)))) {
          if(sf_debug_transition_conflict_check_enabled()) {
            unsigned int transitionList[2];
            unsigned int numTransitions=1;
            transitionList[0] = 10;
            sf_debug_transition_conflict_check_begin();
            if(_sfEvent_ == event_c1_e8_DOWN) {
              transitionList[numTransitions] = 11;
              numTransitions++;
            }
            sf_debug_transition_conflict_check_end();
            if(numTransitions>1) {
              _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
            }
          }
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,10);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,10);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,10);
          exit_atomic_c1_s4_second();
          if(chartInstance.State.is_c1_s1_gear_state == IN_NO_ACTIVE_CHILD) {
            enter_atomic_c1_s5_third();
          }
        } else {
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,11);
          if(CV_TRANSITION_EVAL(11,_SFD_CCP_CALL(11,0,(_sfEvent_ ==
              event_c1_e8_DOWN)))) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,11);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,11);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,11);
            exit_atomic_c1_s4_second();
            if(chartInstance.State.is_c1_s1_gear_state == IN_NO_ACTIVE_CHILD) {
              enter_atomic_c1_s2_first();
            }
          }
        }
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
        break;
       case IN_c1_s5_third:
        CV_STATE_EVAL(7,0,4);
        _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,5);
        if(CV_TRANSITION_EVAL(5,_SFD_CCP_CALL(5,0,(_sfEvent_ ==
            event_c1_e9_UP)))) {
          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(_sfEvent_ == event_c1_e8_DOWN) {
              transitionList[numTransitions] = 7;
              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_c1_s5_third();
          if(chartInstance.State.is_c1_s1_gear_state == IN_NO_ACTIVE_CHILD) {
            _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,1);
            _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,1,0);
            chartInstance.State.is_c1_s1_gear_state = IN_c1_s3_fourth;
            _SFD_CS_CALL(STATE_ACTIVE_TAG,1);
            _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,1);
            _SFD_DATA_RANGE_CHECK_MIN_MAX(OutputData_c1_d5_gear = (real_T
              )4,1,1.0,4.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);
          }
        } else {
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,7);
          if(CV_TRANSITION_EVAL(7,_SFD_CCP_CALL(7,0,(_sfEvent_ ==
              event_c1_e8_DOWN)))) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,7);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,7);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,7);
            exit_atomic_c1_s5_third();
            if(chartInstance.State.is_c1_s1_gear_state == IN_NO_ACTIVE_CHILD) {
              enter_atomic_c1_s4_second();
            }
          }
        }
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
        break;
        default:;
        CV_STATE_EVAL(7,0,0);
      }
    }
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
  }
}

static void enter_atomic_c1_s2_first(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,0);
    _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,0,0);
    if(chartInstance.State.is_c1_s1_gear_state != IN_c1_s2_first) {
      chartInstance.State.is_c1_s1_gear_state = IN_c1_s2_first;
      _SFD_CS_CALL(STATE_ACTIVE_TAG,0);
      _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,0);
      _SFD_DATA_RANGE_CHECK_MIN_MAX(OutputData_c1_d5_gear = (real_T
        )1,1,1.0,4.0);
      _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,0,1);
      _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,0);
    }
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
  }
}

static void enter_atomic_c1_s4_second(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,2);
    _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,0);
    if(chartInstance.State.is_c1_s1_gear_state != IN_c1_s4_second) {
      chartInstance.State.is_c1_s1_gear_state = IN_c1_s4_second;
      _SFD_CS_CALL(STATE_ACTIVE_TAG,2);
      _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,2);
      _SFD_DATA_RANGE_CHECK_MIN_MAX(OutputData_c1_d5_gear = (real_T
        )2,1,1.0,4.0);
      _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,1);
      _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,2);
    }
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
  }
}

static void exit_atomic_c1_s4_second(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,2);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,2,0);
    chartInstance.State.is_c1_s1_gear_state = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,2);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
  }
}

static void enter_atomic_c1_s5_third(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,4);
    _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,0);
    if(chartInstance.State.is_c1_s1_gear_state != IN_c1_s5_third) {
      chartInstance.State.is_c1_s1_gear_state = IN_c1_s5_third;
      _SFD_CS_CALL(STATE_ACTIVE_TAG,4);
      _SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,4);
      _SFD_DATA_RANGE_CHECK_MIN_MAX(OutputData_c1_d5_gear = (real_T
        )3,1,1.0,4.0);
      _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,1);
      _SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,4);
    }
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
  }
}

static void exit_atomic_c1_s5_third(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,4);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,4,0);
    chartInstance.State.is_c1_s1_gear_state = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,4);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
  }
}

static void exit_atomic_c1_s7_downshifting(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,6);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,6,0);
    chartInstance.State.is_c1_s6_selection_state = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,6);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,6);
  }
}

static void enter_atomic_c1_s8_steady_state(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,5);
    _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,5,0);
    chartInstance.State.is_c1_s6_selection_state = IN_c1_s8_steady_state;
    _SFD_CS_CALL(STATE_ACTIVE_TAG,5);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
  }
}

static void exit_atomic_c1_s8_steady_state(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,5);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,5,0);
    chartInstance.State.is_c1_s6_selection_state = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,5);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
  }
}

static void exit_atomic_c1_s9_upshifting(void)
{

  {
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,8);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,8,0);
    chartInstance.State.is_c1_s6_selection_state = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,8);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,8);
  }
}

void sf_example5_sfun_c1_get_check_sum(mxArray *plhs[])
{
  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3636991536U);
  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3421325699U);
  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3041845187U);
  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2796283099U);
}
/*
 * Chart initialization function
 */

static void initialize_example5_sfun_c1( SimStruct *S)
{
  {
    sf_set_error_prefix_string("Stateflow Runtime Error (chart): Error evaluating chart workspace data 'TWAIT'.\n");
    c1_d6_TWAIT =

⌨️ 快捷键说明

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