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

📄 c1_vehicles.c

📁 多个无人机的群飞行仿真 多个无人机的群飞行仿真
💻 C
📖 第 1 页 / 共 5 页
字号:
          transitionList[numTransitions] = 18;
          numTransitions++;
        }
        if(_sfEvent_ == c1_c_event_ta) {
          transitionList[numTransitions] = 24;
          numTransitions++;
        }
        if(_sfEvent_ == c1_c_event_fk) {
          transitionList[numTransitions] = 8;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,12);
      c1_exit_internal_uav3();
      if(chartInstance.c1_is_uav3 != c1_IN_ac_avoid) {
        chartInstance.c1_is_uav3 = (uint8_T)c1_IN_ac_avoid;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,12);
        chartInstance.c1_c_tp_ac_avoid = 1;
        chartInstance.c1_mode_count[0][2]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[0][2], 0U);
      }
    } else if(CV_TRANSITION_EVAL(18U, (int32_T)_SFD_CCP_CALL(18,0,(_sfEvent_ ==
        c1_c_event_oa))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[3];
        unsigned int numTransitions=1;
        transitionList[0] = 18;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_c_event_ta) {
          transitionList[numTransitions] = 24;
          numTransitions++;
        }
        if(_sfEvent_ == c1_c_event_fk) {
          transitionList[numTransitions] = 8;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,18);
      c1_exit_internal_uav3();
      if(chartInstance.c1_is_uav3 != c1_IN_obs_avoid) {
        chartInstance.c1_is_uav3 = (uint8_T)c1_IN_obs_avoid;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,22);
        chartInstance.c1_c_tp_obs_avoid = 1;
        chartInstance.c1_mode_count[1][2]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[1][2], 0U);
      }
    } else if(CV_TRANSITION_EVAL(24U, (int32_T)_SFD_CCP_CALL(24,0,(_sfEvent_ ==
        c1_c_event_ta))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[2];
        unsigned int numTransitions=1;
        transitionList[0] = 24;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_c_event_fk) {
          transitionList[numTransitions] = 8;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,24);
      c1_exit_internal_uav3();
      if(chartInstance.c1_is_uav3 != c1_IN_tgt_aquire) {
        chartInstance.c1_is_uav3 = (uint8_T)c1_IN_tgt_aquire;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,11);
        chartInstance.c1_c_tp_tgt_aquire = 1;
        chartInstance.c1_mode_count[2][2]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[2][2], 0U);
      }
    } else if(CV_TRANSITION_EVAL(8U, (int32_T)_SFD_CCP_CALL(8,0,(_sfEvent_ ==
        c1_c_event_fk))) != 0) {
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,8);
      c1_exit_internal_uav3();
      if(chartInstance.c1_is_uav3 != c1_IN_form_keep) {
        chartInstance.c1_is_uav3 = (uint8_T)c1_IN_form_keep;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,17);
        chartInstance.c1_c_tp_form_keep = 1;
        chartInstance.c1_mode_count[3][2]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[3][2], 0U);
      }
    } else {
      switch(chartInstance.c1_is_uav3) {
       case c1_IN_ac_avoid:
        CV_STATE_EVAL(5,0,1);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,12);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,12);
        break;
       case c1_IN_form_keep:
        CV_STATE_EVAL(5,0,2);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,17);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,17);
        break;
       case c1_IN_obs_avoid:
        CV_STATE_EVAL(5,0,3);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,22);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,22);
        break;
       case c1_IN_tgt_aquire:
        CV_STATE_EVAL(5,0,4);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,11);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,11);
        break;
       default:
        CV_STATE_EVAL(5,0,0);
        break;
      }
    }
  }
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
}

static void c1_exit_internal_uav3(void)
{
  switch(chartInstance.c1_is_uav3) {
   case c1_IN_ac_avoid:
    CV_STATE_EVAL(5,1,1);
    chartInstance.c1_c_tp_ac_avoid = 0;
    chartInstance.c1_is_uav3 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,12);
    break;
   case c1_IN_form_keep:
    CV_STATE_EVAL(5,1,2);
    chartInstance.c1_c_tp_form_keep = 0;
    chartInstance.c1_is_uav3 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,17);
    break;
   case c1_IN_obs_avoid:
    CV_STATE_EVAL(5,1,3);
    chartInstance.c1_c_tp_obs_avoid = 0;
    chartInstance.c1_is_uav3 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,22);
    break;
   case c1_IN_tgt_aquire:
    CV_STATE_EVAL(5,1,4);
    chartInstance.c1_c_tp_tgt_aquire = 0;
    chartInstance.c1_is_uav3 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,11);
    break;
   default:
    CV_STATE_EVAL(5,1,0);
    break;
  }
}

static void c1_uav4(void)
{
  _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,23);
  if(chartInstance.c1_is_active_uav4 != 0) {
    if(CV_TRANSITION_EVAL(2U, (int32_T)_SFD_CCP_CALL(2,0,(_sfEvent_ ==
        c1_d_event_aa))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[4];
        unsigned int numTransitions=1;
        transitionList[0] = 2;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_d_event_oa) {
          transitionList[numTransitions] = 4;
          numTransitions++;
        }
        if(_sfEvent_ == c1_d_event_ta) {
          transitionList[numTransitions] = 1;
          numTransitions++;
        }
        if(_sfEvent_ == c1_d_event_fk) {
          transitionList[numTransitions] = 10;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,2);
      c1_exit_internal_uav4();
      if(chartInstance.c1_is_uav4 != c1_IN_ac_avoid) {
        chartInstance.c1_is_uav4 = (uint8_T)c1_IN_ac_avoid;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,7);
        chartInstance.c1_d_tp_ac_avoid = 1;
        chartInstance.c1_mode_count[0][3]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[0][3], 0U);
      }
    } else if(CV_TRANSITION_EVAL(4U, (int32_T)_SFD_CCP_CALL(4,0,(_sfEvent_ ==
        c1_d_event_oa))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[3];
        unsigned int numTransitions=1;
        transitionList[0] = 4;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_d_event_ta) {
          transitionList[numTransitions] = 1;
          numTransitions++;
        }
        if(_sfEvent_ == c1_d_event_fk) {
          transitionList[numTransitions] = 10;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,4);
      c1_exit_internal_uav4();
      if(chartInstance.c1_is_uav4 != c1_IN_obs_avoid) {
        chartInstance.c1_is_uav4 = (uint8_T)c1_IN_obs_avoid;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,10);
        chartInstance.c1_d_tp_obs_avoid = 1;
        chartInstance.c1_mode_count[1][3]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[1][3], 0U);
      }
    } else if(CV_TRANSITION_EVAL(1U, (int32_T)_SFD_CCP_CALL(1,0,(_sfEvent_ ==
        c1_d_event_ta))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[2];
        unsigned int numTransitions=1;
        transitionList[0] = 1;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_d_event_fk) {
          transitionList[numTransitions] = 10;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,1);
      c1_exit_internal_uav4();
      if(chartInstance.c1_is_uav4 != c1_IN_tgt_aquire) {
        chartInstance.c1_is_uav4 = (uint8_T)c1_IN_tgt_aquire;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,21);
        chartInstance.c1_d_tp_tgt_aquire = 1;
        chartInstance.c1_mode_count[2][3]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[2][3], 0U);
      }
    } else if(CV_TRANSITION_EVAL(10U, (int32_T)_SFD_CCP_CALL(10,0,(_sfEvent_ ==
        c1_d_event_fk))) != 0) {
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,10);
      c1_exit_internal_uav4();
      if(chartInstance.c1_is_uav4 != c1_IN_form_keep) {
        chartInstance.c1_is_uav4 = (uint8_T)c1_IN_form_keep;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,1);
        chartInstance.c1_d_tp_form_keep = 1;
        chartInstance.c1_mode_count[3][3]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[3][3], 0U);
      }
    } else {
      switch(chartInstance.c1_is_uav4) {
       case c1_IN_ac_avoid:
        CV_STATE_EVAL(23,0,1);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,7);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
        break;
       case c1_IN_form_keep:
        CV_STATE_EVAL(23,0,2);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,1);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
        break;
       case c1_IN_obs_avoid:
        CV_STATE_EVAL(23,0,3);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,10);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,10);
        break;
       case c1_IN_tgt_aquire:
        CV_STATE_EVAL(23,0,4);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,21);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,21);
        break;
       default:
        CV_STATE_EVAL(23,0,0);
        break;
      }
    }
  }
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,23);
}

static void c1_exit_internal_uav4(void)
{
  switch(chartInstance.c1_is_uav4) {
   case c1_IN_ac_avoid:
    CV_STATE_EVAL(23,1,1);
    chartInstance.c1_d_tp_ac_avoid = 0;
    chartInstance.c1_is_uav4 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,7);
    break;
   case c1_IN_form_keep:
    CV_STATE_EVAL(23,1,2);
    chartInstance.c1_d_tp_form_keep = 0;
    chartInstance.c1_is_uav4 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,1);
    break;
   case c1_IN_obs_avoid:
    CV_STATE_EVAL(23,1,3);
    chartInstance.c1_d_tp_obs_avoid = 0;
    chartInstance.c1_is_uav4 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,10);
    break;
   case c1_IN_tgt_aquire:
    CV_STATE_EVAL(23,1,4);
    chartInstance.c1_d_tp_tgt_aquire = 0;
    chartInstance.c1_is_uav4 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,21);
    break;
   default:
    CV_STATE_EVAL(23,1,0);
    break;
  }
}

static void c1_uav5(void)
{
  _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,0);
  if(chartInstance.c1_is_active_uav5 != 0) {
    if(CV_TRANSITION_EVAL(16U, (int32_T)_SFD_CCP_CALL(16,0,(_sfEvent_ ==
        c1_e_event_aa))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[4];
        unsigned int numTransitions=1;
        transitionList[0] = 16;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_e_event_oa) {
          transitionList[numTransitions] = 5;
          numTransitions++;
        }
        if(_sfEvent_ == c1_e_event_ta) {
          transitionList[numTransitions] = 17;
          numTransitions++;
        }
        if(_sfEvent_ == c1_e_event_fk) {
          transitionList[numTransitions] = 14;
          numTransitions++;
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,16);
      c1_exit_internal_uav5();
      if(chartInstance.c1_is_uav5 != c1_IN_ac_avoid) {
        chartInstance.c1_is_uav5 = (uint8_T)c1_IN_ac_avoid;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,4);
        chartInstance.c1_e_tp_ac_avoid = 1;
        chartInstance.c1_mode_count[0][4]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[0][4], 0U);
      }
    } else if(CV_TRANSITION_EVAL(5U, (int32_T)_SFD_CCP_CALL(5,0,(_sfEvent_ ==
        c1_e_event_oa))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[3];
        unsigned int numTransitions=1;
        transitionList[0] = 5;
        sf_debug_transition_conflict_check_begin();
        if(_sfEvent_ == c1_e_event_ta) {
          transitionList[numTransitions] = 17;
          numTransitions++;
        }
        if(_sfEvent_ == c1_e_event_fk) {
          transitionList[numTransitions] = 14;
          numTransitions++;

⌨️ 快捷键说明

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