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

📄 c1_vehicles.c

📁 多个无人机的群飞行仿真 多个无人机的群飞行仿真
💻 C
📖 第 1 页 / 共 5 页
字号:
        }
        sf_debug_transition_conflict_check_end();
        if(numTransitions>1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,5);
      c1_exit_internal_uav5();
      if(chartInstance.c1_is_uav5 != c1_IN_obs_avoid) {
        chartInstance.c1_is_uav5 = (uint8_T)c1_IN_obs_avoid;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,8);
        chartInstance.c1_e_tp_obs_avoid = 1;
        chartInstance.c1_mode_count[1][4]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[1][4], 0U);
      }
    } else if(CV_TRANSITION_EVAL(17U, (int32_T)_SFD_CCP_CALL(17,0,(_sfEvent_ ==
        c1_e_event_ta))) != 0) {
      if(sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[2];
        unsigned int numTransitions=1;
        transitionList[0] = 17;
        sf_debug_transition_conflict_check_begin();
        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,17);
      c1_exit_internal_uav5();
      if(chartInstance.c1_is_uav5 != c1_IN_tgt_aquire) {
        chartInstance.c1_is_uav5 = (uint8_T)c1_IN_tgt_aquire;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,16);
        chartInstance.c1_e_tp_tgt_aquire = 1;
        chartInstance.c1_mode_count[2][4]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[2][4], 0U);
      }
    } else if(CV_TRANSITION_EVAL(14U, (int32_T)_SFD_CCP_CALL(14,0,(_sfEvent_ ==
        c1_e_event_fk))) != 0) {
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,14);
      c1_exit_internal_uav5();
      if(chartInstance.c1_is_uav5 != c1_IN_form_keep) {
        chartInstance.c1_is_uav5 = (uint8_T)c1_IN_form_keep;
        _SFD_CS_CALL(STATE_ACTIVE_TAG,25);
        chartInstance.c1_e_tp_form_keep = 1;
        chartInstance.c1_mode_count[3][4]++;
        _SFD_DATA_RANGE_CHECK(chartInstance.c1_mode_count[3][4], 0U);
      }
    } else {
      switch(chartInstance.c1_is_uav5) {
       case c1_IN_ac_avoid:
        CV_STATE_EVAL(0,0,1);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,4);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
        break;
       case c1_IN_form_keep:
        CV_STATE_EVAL(0,0,2);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,25);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,25);
        break;
       case c1_IN_obs_avoid:
        CV_STATE_EVAL(0,0,3);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,8);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,8);
        break;
       case c1_IN_tgt_aquire:
        CV_STATE_EVAL(0,0,4);
        _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,16);
        _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,16);
        break;
       default:
        CV_STATE_EVAL(0,0,0);
        break;
      }
    }
  }
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
}

static void c1_exit_internal_uav5(void)
{
  switch(chartInstance.c1_is_uav5) {
   case c1_IN_ac_avoid:
    CV_STATE_EVAL(0,1,1);
    chartInstance.c1_e_tp_ac_avoid = 0;
    chartInstance.c1_is_uav5 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,4);
    break;
   case c1_IN_form_keep:
    CV_STATE_EVAL(0,1,2);
    chartInstance.c1_e_tp_form_keep = 0;
    chartInstance.c1_is_uav5 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,25);
    break;
   case c1_IN_obs_avoid:
    CV_STATE_EVAL(0,1,3);
    chartInstance.c1_e_tp_obs_avoid = 0;
    chartInstance.c1_is_uav5 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,8);
    break;
   case c1_IN_tgt_aquire:
    CV_STATE_EVAL(0,1,4);
    chartInstance.c1_e_tp_tgt_aquire = 0;
    chartInstance.c1_is_uav5 = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,16);
    break;
   default:
    CV_STATE_EVAL(0,1,0);
    break;
  }
}

static real_T *c1_e1(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 0);
}

static real_T *c1_e2(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 1);
}

static real_T *c1_e3(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 2);
}

static real_T *c1_e4(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 3);
}

static real_T *c1_e5(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 4);
}

static real_T *c1_e6(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 5);
}

static real_T *c1_e7(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 6);
}

static real_T *c1_e8(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 7);
}

static real_T *c1_e9(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 8);
}

static real_T *c1_e10(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 9);
}

static real_T *c1_e11(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 10);
}

static real_T *c1_e12(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 11);
}

static real_T *c1_e13(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 12);
}

static real_T *c1_e14(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 13);
}

static real_T *c1_e15(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 14);
}

static real_T *c1_e16(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 15);
}

static real_T *c1_e17(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 16);
}

static real_T *c1_e18(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 17);
}

static real_T *c1_e19(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 18);
}

static real_T *c1_e20(void)
{
  return (real_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 0) + 19);
}

static void init_test_point_addr_map(void)
{
  chartInstance.c1_testPointAddrMap[0] = &chartInstance.c1_mode_count;
  chartInstance.c1_testPointAddrMap[1] = &chartInstance.c1_tp_parse_events;
  chartInstance.c1_testPointAddrMap[2] = &chartInstance.c1_tp_uav1;
  chartInstance.c1_testPointAddrMap[3] = &chartInstance.c1_tp_ac_avoid;
  chartInstance.c1_testPointAddrMap[4] = &chartInstance.c1_tp_form_keep;
  chartInstance.c1_testPointAddrMap[5] = &chartInstance.c1_tp_obs_avoid;
  chartInstance.c1_testPointAddrMap[6] = &chartInstance.c1_tp_tgt_aquire;
  chartInstance.c1_testPointAddrMap[7] = &chartInstance.c1_tp_uav2;
  chartInstance.c1_testPointAddrMap[8] = &chartInstance.c1_b_tp_ac_avoid;
  chartInstance.c1_testPointAddrMap[9] = &chartInstance.c1_b_tp_form_keep;
  chartInstance.c1_testPointAddrMap[10] = &chartInstance.c1_b_tp_obs_avoid;
  chartInstance.c1_testPointAddrMap[11] = &chartInstance.c1_b_tp_tgt_aquire;
  chartInstance.c1_testPointAddrMap[12] = &chartInstance.c1_tp_uav3;
  chartInstance.c1_testPointAddrMap[13] = &chartInstance.c1_c_tp_ac_avoid;
  chartInstance.c1_testPointAddrMap[14] = &chartInstance.c1_c_tp_form_keep;
  chartInstance.c1_testPointAddrMap[15] = &chartInstance.c1_c_tp_obs_avoid;
  chartInstance.c1_testPointAddrMap[16] = &chartInstance.c1_c_tp_tgt_aquire;
  chartInstance.c1_testPointAddrMap[17] = &chartInstance.c1_tp_uav4;
  chartInstance.c1_testPointAddrMap[18] = &chartInstance.c1_d_tp_ac_avoid;
  chartInstance.c1_testPointAddrMap[19] = &chartInstance.c1_d_tp_form_keep;
  chartInstance.c1_testPointAddrMap[20] = &chartInstance.c1_d_tp_obs_avoid;
  chartInstance.c1_testPointAddrMap[21] = &chartInstance.c1_d_tp_tgt_aquire;
  chartInstance.c1_testPointAddrMap[22] = &chartInstance.c1_tp_uav5;
  chartInstance.c1_testPointAddrMap[23] = &chartInstance.c1_e_tp_ac_avoid;
  chartInstance.c1_testPointAddrMap[24] = &chartInstance.c1_e_tp_form_keep;
  chartInstance.c1_testPointAddrMap[25] = &chartInstance.c1_e_tp_obs_avoid;
  chartInstance.c1_testPointAddrMap[26] = &chartInstance.c1_e_tp_tgt_aquire;
}

static void **get_test_point_address_map(void)
{
  return &chartInstance.c1_testPointAddrMap[0];
}

static rtwCAPI_ModelMappingInfo *get_test_point_mapping_info(void)
{
  return &chartInstance.c1_testPointMappingInfo;
}

/* SFunction Glue Code */
static void init_test_point_mapping_info(SimStruct *S);
void sf_c1_vehicles_get_check_sum(mxArray *plhs[])
{
  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3023783601U);
  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2955509535U);
  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(743496741U);
  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2872174800U);
}

mxArray *sf_c1_vehicles_get_autoinheritance_info(void)
{
  const char *autoinheritanceInfoStructFieldNames[] =
  {"checksum","inputTypes","outputSizes","outputTypes"};
  mxArray *mxAutoinheritanceInfo = NULL;
  mxArray *mxChecksum = NULL;
  mxArray *mxInputTypes = NULL;
  mxArray *mxOutputSizes = NULL;
  mxArray *mxOutputTypes = NULL;

  mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,
   sizeof(autoinheritanceInfoStructFieldNames)/sizeof(char *),
   autoinheritanceInfoStructFieldNames);

  mxChecksum = mxCreateDoubleMatrix(4,1,mxREAL);
  ((real_T *)mxGetPr((mxChecksum)))[0] = (real_T)(0U);
  ((real_T *)mxGetPr((mxChecksum)))[1] = (real_T)(0U);
  ((real_T *)mxGetPr((mxChecksum)))[2] = (real_T)(0U);
  ((real_T *)mxGetPr((mxChecksum)))[3] = (real_T)(0U);

  mxInputTypes = mxCreateDoubleMatrix(1,0,mxREAL);

  mxOutputSizes = mxCreateDoubleMatrix(2,0,mxREAL);
  mxOutputTypes = mxCreateDoubleMatrix(1,0,mxREAL);

  mxSetFieldByNumber(mxAutoinheritanceInfo,0,0,mxChecksum);
  mxSetFieldByNumber(mxAutoinheritanceInfo,0,1,mxInputTypes);
  mxSetFieldByNumber(mxAutoinheritanceInfo,0,2,mxOutputSizes);
  mxSetFieldByNumber(mxAutoinheritanceInfo,0,3,mxOutputTypes);

  return(mxAutoinheritanceInfo);
}

static void chart_debug_initialization(SimStruct *S)
{
  if(ssIsFirstInitCond(S)) {
    /* do this only if simulation is starting */
    if(!sim_mode_is_rtw_gen(S)) {
      {
        unsigned int chartAlreadyPresent;
        chartAlreadyPresent = sf_debug_initialize_chart(_vehiclesMachineNumber_,
         1,
         26,
         25,
         1,
         40,
         0,
         0,
         0,
         &(chartInstance.chartNumber),
         &(chartInstance.instanceNumber),
         ssGetPath(S),
         (void *)S);
        if(chartAlreadyPresent==0) {
          /* this is the first instance */
          sf_debug_set_chart_disable_implicit_casting(_vehiclesMachineNumber_,chartInstance.chartNumber,0);
          sf_debug_set_chart_event_thresholds(_vehiclesMachineNumber_,
           chartInstance.chartNumber,
           40,
           40,
           40);

          {
            unsigned int dimVector[2];
            dimVector[0]= 5;
            dimVector[1]= 4;
            _SFD_SET_DATA_PROPS(0,0,0,0,SF_DOUBLE,2,&(dimVector[0]),0,0.0,1.0,0,"mode_count",0);
          }
          _SFD_EVENT_SCOPE(24,1);
          _SFD_EVENT_SCOPE(1,1);
          _SFD_EVENT_SCOPE(21,1);
          _SFD_EVENT_SCOPE(8,1);
          _SFD_EVENT_SCOPE(2,1);
          _SFD_EVENT_SCOPE(28,1);
          _SFD_EVENT_SCOPE(34,1);
          _SFD_EVENT_SCOPE(5,1);
          _SFD_EVENT_SCOPE(17,1);
          _SFD_EVENT_SCOPE(35,1);
          _SFD_EVENT_SCOPE(22,1);
          _SFD_EVENT_SCOPE(0,1);
          _SFD_EVENT_SCOPE(18,1);
          _SFD_EVENT_SCOPE(39,1);
          _SFD_EVENT_SCOPE(12,1);
          _SFD_EVENT_SCOPE(3,1);
          _SFD_EVENT_SCOPE(33,1);
          _SFD_EVENT_SCOPE(9,1);
          _SFD_EVENT_SCOPE(20,1);
          _SFD_EVENT_SCOPE(23,1);
          _SFD_EVENT_SCOPE(36,0);
          _SFD_EVENT_SCOPE(6,0);
          _SFD_EVENT_SCOPE(15,0);
          _SFD_EVENT_SCOPE(25,0);
          _SFD_EVENT_SCOPE(7,0);
          _SFD_EVENT_SCOPE(14,0);
          _SFD_EVENT_SCOPE(37,0);
          _SFD_EVENT_SCOPE(16,0);
          _SFD_EVENT_SCOPE(13,0);
          _SFD_EVENT_SCOPE(26,0);
          _SFD_EVENT_SCOPE(27,0);
          _SFD_EVENT_SCOPE(11,0);
          _SFD_EVENT_SCOPE(38,0);
          _SFD_EVENT_SCOPE(32,0);
          _SFD_EVENT_SC

⌨️ 快捷键说明

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