Exemplo n.º 1
0
static void sf_c2_function_call_test(void)
{
  uint8_T c2_previousEvent;
  real_T c2_b_a;
  real_T c2_b_b;
  real_T c2_b_y;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  _SFD_DATA_RANGE_CHECK(*c2_a(), 2U);
  _SFD_DATA_RANGE_CHECK(*c2_y(), 1U);
  _SFD_DATA_RANGE_CHECK(*c2_b(), 0U);
  c2_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
  c2_b_a = *c2_a();
  c2_b_b = *c2_b();
  sf_debug_push_symbol_scope(3U, 0U);
  sf_debug_symbol_scope_add_symbol("y", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_y, 0);
  sf_debug_symbol_scope_add_symbol("b", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_b, 0);
  sf_debug_symbol_scope_add_symbol("a", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_a, 0);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
  if(CV_EML_IF(0, 0, c2_b_a != c2_b_b)) {
    /*  This block supports an embeddable subset of the MATLAB language. */
    /*  See the help menu for details.  */
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
    c2_b_y = 1.0;
  } else {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
    c2_b_y = 0.0;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-5);
  sf_debug_pop_symbol_scope();
  *c2_y() = c2_b_y;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
  _sfEvent_ = c2_previousEvent;
  sf_debug_check_for_state_inconsistency(_function_call_testMachineNumber_,
   chartInstance.chartNumber, chartInstance.instanceNumber);
}
Exemplo n.º 2
0
static void sf_c1_object_tracker_intensity(void)
{
  uint8_T c1_previousEvent;
  real_T c1_b_DirectionCode;
  int32_T c1_b_BlobCount;
  real_T c1_BRAKEDIFF;
  real_T c1_DIFFTHING;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  _SFD_DATA_RANGE_CHECK(*c1_DirectionCode(), 1U);
  _SFD_DATA_RANGE_CHECK((real_T)*c1_BlobCount(), 0U);
  c1_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
  c1_b_DirectionCode = *c1_DirectionCode();
  c1_b_BlobCount = *c1_BlobCount();
  sf_debug_push_symbol_scope(7U, 0U);
  sf_debug_symbol_scope_add_symbol("movecount", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &chartInstance.c1_movecount, 0);
  sf_debug_symbol_scope_add_symbol("brakecount", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &chartInstance.c1_brakecount, 0);
  sf_debug_symbol_scope_add_symbol("startflag", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &chartInstance.c1_startflag, 0);
  sf_debug_symbol_scope_add_symbol("BRAKEDIFF", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c1_BRAKEDIFF, 0);
  sf_debug_symbol_scope_add_symbol("DIFFTHING", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c1_DIFFTHING, 0);
  sf_debug_symbol_scope_add_symbol("BlobCount", 6, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c1_b_BlobCount, 0);
  sf_debug_symbol_scope_add_symbol("DirectionCode", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c1_b_DirectionCode, 0);
  CV_EML_FCN(0, 0);
  /*  This block supports an embeddable subset of the MATLAB language. */
  /*  See the help menu for details.  */
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
  c1_DIFFTHING = 5.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
  c1_BRAKEDIFF = 2.0;
  /* no of frames after which the position of the car is updated. */
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
  if(CV_EML_IF(0, 0, !chartInstance.c1_startflag_not_empty)) {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,13);
    chartInstance.c1_startflag = 1.0;
    chartInstance.c1_startflag_not_empty = true;
  } else {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,15);
    chartInstance.c1_startflag = 0.0;
    chartInstance.c1_startflag_not_empty = true;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,18);
  if(CV_EML_IF(0, 1, !chartInstance.c1_brakecount_not_empty)) {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,19);
    chartInstance.c1_brakecount = 0.0;
    chartInstance.c1_brakecount_not_empty = true;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,22);
  if(CV_EML_IF(0, 2, !chartInstance.c1_movecount_not_empty)) {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,23);
    chartInstance.c1_movecount = 0.0;
    chartInstance.c1_movecount_not_empty = true;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,26);
  if(CV_EML_IF(0, 3, (real_T)c1_b_BlobCount == 0.0)) {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,27);
    chartInstance.c1_movecount = c1_DIFFTHING;
    chartInstance.c1_movecount_not_empty = true;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,28);
    chartInstance.c1_brakecount = 0.0;
    chartInstance.c1_brakecount_not_empty = true;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,29);
    chartInstance.c1_startflag = 1.0;
    chartInstance.c1_startflag_not_empty = true;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,30);
    sf_mex_call("BrakeAll", 0U, 0U);
  } else {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,34);
    chartInstance.c1_movecount = chartInstance.c1_movecount + 1.0;
    chartInstance.c1_movecount_not_empty = true;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,35);
    chartInstance.c1_brakecount = chartInstance.c1_brakecount + 1.0;
    chartInstance.c1_brakecount_not_empty = true;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,37);
    if(CV_EML_IF(0, 4, chartInstance.c1_brakecount >= c1_BRAKEDIFF)) {
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,38);
      sf_mex_call("BrakeAll", 0U, 0U);
    }
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,42);
    if(CV_EML_COND(0, 0, chartInstance.c1_movecount >= c1_DIFFTHING) ||
     CV_EML_COND(0, 1, chartInstance.c1_startflag == 1.0)) {
      CV_EML_MCDC(0, 0, true);
      CV_EML_IF(0, 5, true);
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,44);
      if(CV_EML_IF(0, 6, c1_b_DirectionCode == 1.0)) {
        /* Forward */
        _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,45);
        sf_mex_call("MoveForward", 0U, 1U, 6, 1.0);
      } else {
        _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,46);
        if(CV_EML_IF(0, 7, c1_b_DirectionCode == 2.0)) {
          /* Left */
          _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,47);
          sf_mex_call("MoveLeft", 0U, 1U, 6, 1.0);
        } else {
          _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,48);
          if(CV_EML_IF(0, 8, c1_b_DirectionCode == 3.0)) {
            /* Right */
            _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,49);
            sf_mex_call("MoveRight", 0U, 1U, 6, 1.0);
          }
        }
      }
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,52);
      sf_mex_call("MoveForward", 0U, 1U, 6, 1.0);
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,53);
      chartInstance.c1_movecount = 0.0;
      chartInstance.c1_movecount_not_empty = true;
    } else {
      CV_EML_MCDC(0, 0, false);
      CV_EML_IF(0, 5, false);
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-53);
  sf_debug_pop_symbol_scope();
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
  _sfEvent_ = c1_previousEvent;
  sf_debug_check_for_state_inconsistency(_object_tracker_intensityMachineNumber_,
   chartInstance.chartNumber, chartInstance.
   instanceNumber);
}
Exemplo n.º 3
0
static void sf_c3_MPC_framework(void)
{
  uint8_T c3_previousEvent;
  real32_T c3_b_a0;
  real32_T c3_b_a1;
  real32_T c3_b_a2;
  real32_T c3_b_a3;
  real32_T c3_b_a4;
  real32_T c3_b_a5;
  real_T c3_b_t_sim;
  real_T c3_b_t_end;
  real32_T c3_Q[3];
  real_T c3_T[6][3];
  real32_T c3_b_qapp;
  real32_T c3_b_qap;
  real32_T c3_b_qa;
  real_T c3_a;
  real_T c3_b_a;
  real_T c3_b;
  real_T c3_k;
  real_T c3_b_k;
  real_T c3_x;
  real_T c3_xk;
  real_T c3_ak;
  real_T c3_b_x;
  real_T c3_b_xk;
  real_T c3_bk;
  real_T c3_c_x;
  real_T c3_y;
  real_T c3_b_y;
  real_T c3_c;
  real_T c3_A;
  real_T c3_B;
  real_T c3_d_x;
  real_T c3_c_y;
  real_T c3_z;
  real_T c3_d_y;
  real_T c3_b_A;
  real_T c3_b_B;
  real_T c3_e_x;
  real_T c3_e_y;
  real_T c3_b_z;
  real_T c3_f_y;
  real_T c3_c_A;
  real_T c3_c_B;
  real_T c3_f_x;
  real_T c3_g_y;
  real_T c3_c_z;
  real_T c3_h_y;
  real_T c3_d_A;
  real_T c3_d_B;
  real_T c3_g_x;
  real_T c3_i_y;
  real_T c3_d_z;
  real_T c3_j_y;
  real_T c3_e_A;
  real_T c3_e_B;
  real_T c3_h_x;
  real_T c3_k_y;
  real_T c3_e_z;
  real_T c3_l_y;
  real_T c3_f_A;
  real_T c3_f_B;
  real_T c3_i_x;
  real_T c3_m_y;
  real_T c3_f_z;
  real_T c3_n_y;
  real_T c3_g_A;
  real_T c3_g_B;
  real_T c3_j_x;
  real_T c3_o_y;
  real_T c3_g_z;
  real_T c3_p_y;
  real_T c3_q_y[6][1];
  real_T c3_r_y[6][1];
  real_T c3_em_dv0[6][1];
  int32_T c3_em_i0;
  int32_T c3_em_i1;
  int32_T c3_em_i2;
  int32_T c3_em_i3;
  int32_T c3_em_i4;
  real32_T c3_b_T[6][3];
  real32_T c3_c_a0[6];
  int32_T c3_em_i5;
  int32_T c3_em_i6;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_a0(), 3U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_a1(), 9U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_a2(), 1U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_a3(), 8U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_a4(), 0U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_a5(), 6U);
  _SFD_DATA_RANGE_CHECK(*c3_t_sim(), 4U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_qa(), 2U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_qap(), 10U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_qapp(), 7U);
  _SFD_DATA_RANGE_CHECK(*c3_t_end(), 5U);
  c3_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,2);
  c3_b_a0 = *c3_a0();
  c3_b_a1 = *c3_a1();
  c3_b_a2 = *c3_a2();
  c3_b_a3 = *c3_a3();
  c3_b_a4 = *c3_a4();
  c3_b_a5 = *c3_a5();
  c3_b_t_sim = *c3_t_sim();
  c3_b_t_end = *c3_t_end();
  sf_debug_push_symbol_scope(13U, 0U);
  sf_debug_symbol_scope_add_symbol("Q", 1, 1U, 3U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 1, &c3_Q, 0);
  sf_debug_symbol_scope_add_symbol("T", 0, 2U, 3U, 6U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 1, &c3_T, 0);
  sf_debug_symbol_scope_add_symbol("qapp", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_b_qapp, 0);
  sf_debug_symbol_scope_add_symbol("qap", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_qap, 0);
  sf_debug_symbol_scope_add_symbol("qa", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_qa, 0);
  sf_debug_symbol_scope_add_symbol("t_end", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_b_t_end, 0);
  sf_debug_symbol_scope_add_symbol("t_sim", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_b_t_sim, 0);
  sf_debug_symbol_scope_add_symbol("a5", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a5, 0);
  sf_debug_symbol_scope_add_symbol("a4", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a4, 0);
  sf_debug_symbol_scope_add_symbol("a3", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a3, 0);
  sf_debug_symbol_scope_add_symbol("a2", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a2, 0);
  sf_debug_symbol_scope_add_symbol("a1", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a1, 0);
  sf_debug_symbol_scope_add_symbol("a0", 1, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a0, 0);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
  if(CV_EML_IF(0, 0, c3_b_t_sim >= c3_b_t_end)) {
    /*  This block supports an embeddable subset of the MATLAB language. */
    /*  See the help menu for details.  */
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
    c3_b_t_sim = c3_b_t_end;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,7);
  c3_a = c3_b_t_sim;
  c3_b_a = c3_a;
  c3_b = 5.0;
  c3_k = 1.0;
  c3_b_k = c3_k;
  c3_x = c3_b_a;
  c3_xk = c3_x;
  c3_ak = c3_xk;
  c3_b_x = c3_b;
  c3_b_xk = c3_b_x;
  c3_bk = c3_b_xk;
  if(c3_ak < 0.0) {
    c3_c_x = c3_bk;
    c3_y = floor(c3_c_x);
    if(c3_y != c3_bk) {
      sf_mex_call("error", 0U, 1U, 15,
       "Domain error. To compute complex results, make at least one input complex, e.g. \'power(complex(a),b)\'.");
    }
  }
  _SFD_EML_ARRAY_BOUNDS_CHECK("y", (int32_T)_SFD_INTEGER_CHECK("k", c3_b_k), 1,
   1, 1);
  c3_b_y = pow(c3_ak, c3_bk);
  c3_c = c3_b_y;
  c3_A = c3_c;
  c3_B = 20.0;
  c3_d_x = c3_A;
  c3_c_y = c3_B;
  c3_z = c3_d_x / c3_c_y;
  c3_d_y = c3_z;
  c3_b_A = c3_mpower(c3_b_t_sim);
  c3_b_B = 12.0;
  c3_e_x = c3_b_A;
  c3_e_y = c3_b_B;
  c3_b_z = c3_e_x / c3_e_y;
  c3_f_y = c3_b_z;
  c3_c_A = c3_b_mpower(c3_b_t_sim);
  c3_c_B = 6.0;
  c3_f_x = c3_c_A;
  c3_g_y = c3_c_B;
  c3_c_z = c3_f_x / c3_g_y;
  c3_h_y = c3_c_z;
  c3_d_A = c3_c_mpower(c3_b_t_sim);
  c3_d_B = 2.0;
  c3_g_x = c3_d_A;
  c3_i_y = c3_d_B;
  c3_d_z = c3_g_x / c3_i_y;
  c3_j_y = c3_d_z;
  c3_e_A = c3_mpower(c3_b_t_sim);
  c3_e_B = 4.0;
  c3_h_x = c3_e_A;
  c3_k_y = c3_e_B;
  c3_e_z = c3_h_x / c3_k_y;
  c3_l_y = c3_e_z;
  c3_f_A = c3_b_mpower(c3_b_t_sim);
  c3_f_B = 3.0;
  c3_i_x = c3_f_A;
  c3_m_y = c3_f_B;
  c3_f_z = c3_i_x / c3_m_y;
  c3_n_y = c3_f_z;
  c3_g_A = c3_c_mpower(c3_b_t_sim);
  c3_g_B = 2.0;
  c3_j_x = c3_g_A;
  c3_o_y = c3_g_B;
  c3_g_z = c3_j_x / c3_o_y;
  c3_p_y = c3_g_z;
  c3_q_y[0][0] = c3_d_y;
  c3_q_y[1][0] = c3_f_y;
  c3_q_y[2][0] = c3_h_y;
  c3_q_y[3][0] = c3_j_y;
  c3_q_y[4][0] = c3_b_t_sim;
  c3_q_y[5][0] = 1.0;
  c3_r_y[0][0] = c3_l_y;
  c3_r_y[1][0] = c3_n_y;
  c3_r_y[2][0] = c3_p_y;
  c3_r_y[3][0] = c3_b_t_sim;
  c3_r_y[4][0] = 1.0;
  c3_r_y[5][0] = 0.0;
  c3_em_dv0[0][0] = c3_b_mpower(c3_b_t_sim);
  c3_em_dv0[1][0] = c3_c_mpower(c3_b_t_sim);
  c3_em_dv0[2][0] = c3_b_t_sim;
  c3_em_dv0[3][0] = 1.0;
  c3_em_dv0[4][0] = 0.0;
  c3_em_dv0[5][0] = 0.0;
  for(c3_em_i0 = 0; c3_em_i0 < 6; c3_em_i0 = c3_em_i0 + 1) {
    c3_T[c3_em_i0][0] = c3_q_y[c3_em_i0][0];
  }
  for(c3_em_i1 = 0; c3_em_i1 < 6; c3_em_i1 = c3_em_i1 + 1) {
    c3_T[c3_em_i1][1] = c3_r_y[c3_em_i1][0];
  }
  for(c3_em_i2 = 0; c3_em_i2 < 6; c3_em_i2 = c3_em_i2 + 1) {
    c3_T[c3_em_i2][2] = c3_em_dv0[c3_em_i2][0];
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,10);
  for(c3_em_i3 = 0; c3_em_i3 < 6; c3_em_i3 = c3_em_i3 + 1) {
    for(c3_em_i4 = 0; c3_em_i4 < 3; c3_em_i4 = c3_em_i4 + 1) {
      c3_b_T[c3_em_i3][c3_em_i4] = (real32_T)c3_T[c3_em_i3][c3_em_i4];
    }
  }
  c3_c_a0[0] = c3_b_a0;
  c3_c_a0[1] = c3_b_a1;
  c3_c_a0[2] = c3_b_a2;
  c3_c_a0[3] = c3_b_a3;
  c3_c_a0[4] = c3_b_a4;
  c3_c_a0[5] = c3_b_a5;
  for(c3_em_i5 = 0; c3_em_i5 < 3; c3_em_i5 = c3_em_i5 + 1) {
    c3_Q[c3_em_i5] = 0.0F;
    for(c3_em_i6 = 0; c3_em_i6 < 6; c3_em_i6 = c3_em_i6 + 1) {
      c3_Q[c3_em_i5] = c3_Q[c3_em_i5] + c3_b_T[c3_em_i6][c3_em_i5] *
        c3_c_a0[c3_em_i6];
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
  c3_b_qa = c3_Q[0];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,13);
  c3_b_qap = c3_Q[1];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,14);
  c3_b_qapp = c3_Q[2];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-14);
  sf_debug_pop_symbol_scope();
  *c3_qa() = c3_b_qa;
  *c3_qap() = c3_b_qap;
  *c3_qapp() = c3_b_qapp;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
  _sfEvent_ = c3_previousEvent;
  sf_debug_check_for_state_inconsistency(_MPC_frameworkMachineNumber_,
   chartInstance.chartNumber, chartInstance.instanceNumber);
}
Exemplo n.º 4
0
static void c2_c2_MPC_framework(void)
{
  real_T c2_b_x;
  real_T c2_b_y;
  real_T c2_b_al1_c;
  real_T c2_b_al2_c;
  real_T c2_b_a1;
  real_T c2_b_a2;
  real_T c2_al2_2;
  real_T c2_al1_al2_2;
  real_T c2_sin_al1_al2_2;
  real_T c2_cos_al1_al2_2;
  real_T c2_al2_1;
  real_T c2_al1_al2_1;
  real_T c2_sin_al1_al2_1;
  real_T c2_cos_al1_al2_1;
  real_T c2_al2_n;
  real_T c2_al2_p;
  real_T c2_al1_2;
  real_T c2_al1_1;
  real_T c2_cos_al1_n;
  real_T c2_cos_al1_p;
  real_T c2_sin_al1_n;
  real_T c2_sin_al1_p;
  real_T c2_D;
  real_T c2_cos_al2;
  real_T c2_d;
  uint8_T c2_b_error;
  real_T c2_b_al2;
  real_T c2_b_al1;
  real_T c2_c_x;
  real_T c2_c_y;
  boolean_T c2_em_b0;
  boolean_T c2_em_b1;
  real_T c2_A;
  real_T c2_B;
  real_T c2_d_x;
  real_T c2_d_y;
  real_T c2_z;
  real_T c2_e_y;
  real_T c2_e_x;
  real_T c2_f_y;
  real_T c2_b_A;
  real_T c2_b_B;
  real_T c2_f_x;
  real_T c2_g_y;
  real_T c2_b_z;
  real_T c2_h_y;
  real_T c2_g_x;
  real_T c2_i_y;
  real_T c2_c_A;
  real_T c2_c_B;
  real_T c2_h_x;
  real_T c2_j_y;
  real_T c2_c_z;
  real_T c2_k_y;
  real_T c2_i_x;
  real_T c2_l_y;
  real_T c2_d_A;
  real_T c2_d_B;
  real_T c2_j_x;
  real_T c2_m_y;
  real_T c2_d_z;
  real_T c2_n_y;
  real_T c2_k_x;
  real_T c2_o_y;
  real_T c2_e_A;
  real_T c2_e_B;
  real_T c2_l_x;
  real_T c2_p_y;
  real_T c2_e_z;
  real_T c2_q_y;
  real_T c2_m_x;
  real_T c2_k;
  real_T c2_b_k;
  real_T c2_r_y;
  real_T c2_n_x;
  real_T c2_s_y;
  real_T c2_f_A;
  real_T c2_f_B;
  real_T c2_o_x;
  real_T c2_t_y;
  real_T c2_f_z;
  real_T c2_u_y;
  real_T c2_p_x;
  real_T c2_v_y;
  real_T c2_g_A;
  real_T c2_g_B;
  real_T c2_q_x;
  real_T c2_w_y;
  real_T c2_g_z;
  real_T c2_x_y;
  real_T c2_r_x;
  real_T c2_y_y;
  real_T c2_h_A;
  real_T c2_h_B;
  real_T c2_s_x;
  real_T c2_ab_y;
  real_T c2_h_z;
  real_T c2_bb_y;
  real_T c2_t_x;
  real_T c2_cb_y;
  real_T c2_i_A;
  real_T c2_i_B;
  real_T c2_u_x;
  real_T c2_db_y;
  real_T c2_i_z;
  real_T c2_eb_y;
  real_T c2_v_x;
  real_T c2_fb_y;
  real_T c2_w_x;
  real_T c2_gb_y;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,1);
  c2_b_x = *c2_x();
  c2_b_y = *c2_y();
  c2_b_al1_c = *c2_al1_c();
  c2_b_al2_c = *c2_al2_c();
  c2_b_a1 = *c2_a1();
  c2_b_a2 = *c2_a2();
  sf_debug_push_symbol_scope(28U, 0U);
  sf_debug_symbol_scope_add_symbol("al2_2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_al2_2, 0);
  sf_debug_symbol_scope_add_symbol("al1_al2_2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_al1_al2_2, 0);
  sf_debug_symbol_scope_add_symbol("sin_al1_al2_2", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c2_sin_al1_al2_2, 0);
  sf_debug_symbol_scope_add_symbol("cos_al1_al2_2", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c2_cos_al1_al2_2, 0);
  sf_debug_symbol_scope_add_symbol("al2_1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_al2_1, 0);
  sf_debug_symbol_scope_add_symbol("al1_al2_1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_al1_al2_1, 0);
  sf_debug_symbol_scope_add_symbol("sin_al1_al2_1", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c2_sin_al1_al2_1, 0);
  sf_debug_symbol_scope_add_symbol("cos_al1_al2_1", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c2_cos_al1_al2_1, 0);
  sf_debug_symbol_scope_add_symbol("al2_n", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_al2_n, 0);
  sf_debug_symbol_scope_add_symbol("al2_p", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_al2_p, 0);
  sf_debug_symbol_scope_add_symbol("al1_2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_al1_2, 0);
  sf_debug_symbol_scope_add_symbol("al1_1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_al1_1, 0);
  sf_debug_symbol_scope_add_symbol("cos_al1_n", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_cos_al1_n, 0);
  sf_debug_symbol_scope_add_symbol("cos_al1_p", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_cos_al1_p, 0);
  sf_debug_symbol_scope_add_symbol("sin_al1_n", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_sin_al1_n, 0);
  sf_debug_symbol_scope_add_symbol("sin_al1_p", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_sin_al1_p, 0);
  sf_debug_symbol_scope_add_symbol("D", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_D, 0);
  sf_debug_symbol_scope_add_symbol("cos_al2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_cos_al2, 0);
  sf_debug_symbol_scope_add_symbol("d", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_d, 0);
  sf_debug_symbol_scope_add_symbol("error", 3, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_b_error, 0);
  sf_debug_symbol_scope_add_symbol("al2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_al2, 0);
  sf_debug_symbol_scope_add_symbol("al1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_al1, 0);
  sf_debug_symbol_scope_add_symbol("a2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_a2, 0);
  sf_debug_symbol_scope_add_symbol("a1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_a1, 0);
  sf_debug_symbol_scope_add_symbol("al2_c", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_b_al2_c, 0);
  sf_debug_symbol_scope_add_symbol("al1_c", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c2_b_al1_c, 0);
  sf_debug_symbol_scope_add_symbol("y", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_y, 0);
  sf_debug_symbol_scope_add_symbol("x", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_b_x, 0);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,3);
  c2_c_x = c2_mpower(c2_b_x) + c2_mpower(c2_b_y);
  c2_c_y = sqrt(c2_c_x);
  c2_d = c2_c_y;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
  c2_em_b0 = (c2_mpower(c2_d) > c2_mpower(c2_b_a1) + c2_mpower(c2_b_a2));
  c2_em_b1 = (c2_d < c2_b_a1 - c2_b_a2);
  if(CV_EML_IF(0, 0, c2_em_b0 || c2_em_b1)) {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
    c2_b_al1 = c2_b_al1_c;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,6);
    c2_b_al2 = c2_b_al2_c;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,7);
    c2_b_error = 1U;
  } else {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,11);
    c2_A = ((c2_mpower(c2_b_x) + c2_mpower(c2_b_y)) - c2_mpower(c2_b_a1)) -
      c2_mpower(c2_b_a2);
    c2_B = 2.0 * c2_b_a1 * c2_b_a2;
    c2_d_x = c2_A;
    c2_d_y = c2_B;
    c2_z = c2_d_x / c2_d_y;
    c2_e_y = c2_z;
    c2_cos_al2 = c2_e_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
    c2_D = c2_b_a1 + c2_b_a2 * c2_cos_al2;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,14);
    c2_e_x = (c2_mpower(c2_b_x) + c2_mpower(c2_b_y)) - c2_mpower(c2_D);
    c2_f_y = sqrt(c2_e_x);
    c2_b_A = c2_D * c2_b_y + c2_b_x * c2_f_y;
    c2_b_B = c2_mpower(c2_b_x) + c2_mpower(c2_b_y);
    c2_f_x = c2_b_A;
    c2_g_y = c2_b_B;
    c2_b_z = c2_f_x / c2_g_y;
    c2_h_y = c2_b_z;
    c2_sin_al1_p = c2_h_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,15);
    c2_g_x = (c2_mpower(c2_b_x) + c2_mpower(c2_b_y)) - c2_mpower(c2_D);
    c2_i_y = sqrt(c2_g_x);
    c2_c_A = c2_D * c2_b_y - c2_b_x * c2_i_y;
    c2_c_B = c2_mpower(c2_b_x) + c2_mpower(c2_b_y);
    c2_h_x = c2_c_A;
    c2_j_y = c2_c_B;
    c2_c_z = c2_h_x / c2_j_y;
    c2_k_y = c2_c_z;
    c2_sin_al1_n = c2_k_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,17);
    c2_i_x = (c2_mpower(c2_b_x) + c2_mpower(c2_b_y)) - c2_mpower(c2_D);
    c2_l_y = sqrt(c2_i_x);
    c2_d_A = c2_D * c2_b_x + c2_b_y * c2_l_y;
    c2_d_B = c2_mpower(c2_b_x) + c2_mpower(c2_b_y);
    c2_j_x = c2_d_A;
    c2_m_y = c2_d_B;
    c2_d_z = c2_j_x / c2_m_y;
    c2_n_y = c2_d_z;
    c2_cos_al1_p = c2_n_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,18);
    c2_k_x = (c2_mpower(c2_b_x) + c2_mpower(c2_b_y)) - c2_mpower(c2_D);
    c2_o_y = sqrt(c2_k_x);
    c2_e_A = c2_D * c2_b_x - c2_b_y * c2_o_y;
    c2_e_B = c2_mpower(c2_b_x) + c2_mpower(c2_b_y);
    c2_l_x = c2_e_A;
    c2_p_y = c2_e_B;
    c2_e_z = c2_l_x / c2_p_y;
    c2_q_y = c2_e_z;
    c2_cos_al1_n = c2_q_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,20);
    c2_al1_1 = c2_atan2(c2_sin_al1_p, c2_cos_al1_n);
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,22);
    c2_al1_2 = c2_atan2(c2_sin_al1_n, c2_cos_al1_p);
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,24);
    c2_m_x = c2_cos_al2;
    c2_k = 1.0;
    c2_b_k = c2_k;
    _SFD_EML_ARRAY_BOUNDS_CHECK("x", (int32_T)_SFD_INTEGER_CHECK("k", c2_b_k),
     1, 1, 1);
    if(c2_m_x < -1.0) {
    } else {
      _SFD_EML_ARRAY_BOUNDS_CHECK("x", (int32_T)_SFD_INTEGER_CHECK("k", c2_b_k),
       1, 1, 1);
      if(c2_m_x > 1.0) {
      } else {
        goto label_1;
      }
    }
    sf_mex_call("error", 0U, 1U, 15,
     "Domain error. To compute complex results from real x, use \'acos(complex(x))\'.");
    label_1:;
    c2_r_y = acos(c2_m_x);
    c2_al2_p = c2_r_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,25);
    c2_al2_n = -c2_al2_p;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,27);
    c2_n_x = c2_al1_1;
    c2_s_y = cos(c2_n_x);
    c2_f_A = c2_b_x - c2_b_a1 * c2_s_y;
    c2_f_B = c2_b_a2;
    c2_o_x = c2_f_A;
    c2_t_y = c2_f_B;
    c2_f_z = c2_o_x / c2_t_y;
    c2_u_y = c2_f_z;
    c2_cos_al1_al2_1 = c2_u_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,28);
    c2_p_x = c2_al1_1;
    c2_v_y = sin(c2_p_x);
    c2_g_A = c2_b_y - c2_b_a1 * c2_v_y;
    c2_g_B = c2_b_a2;
    c2_q_x = c2_g_A;
    c2_w_y = c2_g_B;
    c2_g_z = c2_q_x / c2_w_y;
    c2_x_y = c2_g_z;
    c2_sin_al1_al2_1 = c2_x_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,29);
    c2_al1_al2_1 = c2_atan2(c2_sin_al1_al2_1, c2_cos_al1_al2_1);
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,30);
    c2_al2_1 = c2_al1_al2_1 - c2_al1_1;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,32);
    c2_r_x = c2_al1_2;
    c2_y_y = cos(c2_r_x);
    c2_h_A = c2_b_x - c2_b_a1 * c2_y_y;
    c2_h_B = c2_b_a2;
    c2_s_x = c2_h_A;
    c2_ab_y = c2_h_B;
    c2_h_z = c2_s_x / c2_ab_y;
    c2_bb_y = c2_h_z;
    c2_cos_al1_al2_2 = c2_bb_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,33);
    c2_t_x = c2_al1_2;
    c2_cb_y = sin(c2_t_x);
    c2_i_A = c2_b_y - c2_b_a1 * c2_cb_y;
    c2_i_B = c2_b_a2;
    c2_u_x = c2_i_A;
    c2_db_y = c2_i_B;
    c2_i_z = c2_u_x / c2_db_y;
    c2_eb_y = c2_i_z;
    c2_sin_al1_al2_2 = c2_eb_y;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,34);
    c2_al1_al2_2 = c2_atan2(c2_sin_al1_al2_2, c2_cos_al1_al2_2);
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,35);
    c2_al2_2 = c2_al1_al2_2 - c2_al1_2;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,37);
    c2_v_x = c2_b_al1_c - c2_al1_1;
    c2_fb_y = fabs(c2_v_x);
    c2_w_x = c2_b_al1_c - c2_al1_2;
    c2_gb_y = fabs(c2_w_x);
    if(CV_EML_IF(0, 1, c2_fb_y < c2_gb_y)) {
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,38);
      c2_b_al1 = c2_al1_1;
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,39);
      c2_b_al2 = c2_al2_1;
    } else {
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,41);
      c2_b_al1 = c2_al1_2;
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,42);
      c2_b_al2 = c2_al2_2;
    }
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,45);
    c2_b_error = 0U;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-45);
  sf_debug_pop_symbol_scope();
  *c2_al1() = c2_b_al1;
  *c2_al2() = c2_b_al2;
  *c2_error() = c2_b_error;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
}
Exemplo n.º 5
0
static void sf_c2_object_tracker_intensity(void)
{
  int32_T c2_em_i0;
  int32_T c2_em_i1;
  int32_T c2_em_i2;
  int32_T c2_em_i3;
  int32_T c2_em_i4;
  int32_T c2_em_i5;
  uint8_T c2_previousEvent;
  int32_T c2_em_i6;
  int32_T c2_em_i7;
  uint16_T c2_b_CentroidArray[10][2];
  real_T c2_b_booleof;
  int32_T c2_em_i8;
  uint16_T c2_b_StartCoords[2];
  uint16_T c2_b_VidSize[2];
  uint16_T c2_centroid[2];
  real_T c2_i;
  uint16_T c2_m;
  uint16_T c2_myvector[10][1];
  uint16_T c2_ally[10][1];
  uint16_T c2_allx[10][1];
  uint16_T c2_z[2];
  uint16_T c2_b_CentroidCol;
  uint16_T c2_b_LineVector[4][1];
  uint16_T c2_b_CentroidCoords[2];
  boolean_T c2_r;
  int32_T c2_em_i9;
  int32_T c2_em_i10;
  int32_T c2_em_i11;
  uint16_T c2_c_CentroidArray[10][1];
  uint16_T c2_b_z;
  int32_T c2_em_i12;
  uint32_T c2_em_u0;
  uint32_T c2_em_u1;
  uint32_T c2_em_u2;
  uint16_T c2_em_u3;
  int32_T c2_em_i13;
  uint16_T c2_d_CentroidArray[10][1];
  uint16_T c2_c_z;
  int32_T c2_em_i14;
  uint32_T c2_em_u4;
  uint32_T c2_em_u5;
  uint32_T c2_em_u6;
  uint16_T c2_em_u7;
  int32_T c2_em_i15;
  uint16_T c2_b_allx[10][1];
  uint16_T c2_em_uv0[10][1];
  int32_T c2_em_i16;
  uint16_T c2_b_ally[10][1];
  uint16_T c2_em_uv1[10][1];
  int32_T c2_em_i17;
  uint32_T c2_em_u8;
  uint16_T c2_em_u9;
  int32_T c2_em_i18;
  uint16_T c2_x[10][1];
  uint16_T c2_b_x[10][1];
  real_T c2_jstart;
  uint16_T c2_minval;
  real_T c2_indx;
  real_T c2_j1;
  real_T c2_b_j1;
  uint16_T c2_a;
  uint16_T c2_b;
  boolean_T c2_p;
  uint16_T c2_b_minval;
  real_T c2_b_indx;
  int32_T c2_em_i19;
  static int32_T c2_em_iv0[2][1] = { { 0 }, { 1 } };
  int32_T c2_em_i20;
  int32_T c2_em_i21;
  int32_T c2_em_i22;
  uint16_T c2_A;
  real_T c2_B;
  uint16_T c2_c_x;
  real_T c2_y;
  uint16_T c2_d_x;
  real_T c2_b_y;
  real_T c2_k;
  real_T c2_b_k;
  uint16_T c2_e_x;
  real_T c2_c_y;
  real_T c2_c_k;
  real_T c2_d_k;
  uint16_T c2_f_x;
  uint16_T c2_xk;
  real_T c2_b_xk;
  real_T c2_g_x;
  real_T c2_c_xk;
  real_T c2_yk;
  real_T c2_zk;
  real_T c2_em_d0;
  real_T c2_em_d1;
  uint16_T c2_d_z;
  uint16_T c2_e_z;
  uint16_T c2_f_z;
  uint16_T c2_d_y;
  int32_T c2_em_i23;
  int32_T c2_em_i24;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  for(c2_em_i0 = 0; c2_em_i0 < 2; c2_em_i0 = c2_em_i0 + 1) {
    _SFD_DATA_RANGE_CHECK((real_T)c2_CentroidCoords()[c2_em_i0], 1U);
  }
  for(c2_em_i1 = 0; c2_em_i1 < 10; c2_em_i1 = c2_em_i1 + 1) {
    for(c2_em_i2 = 0; c2_em_i2 < 2; c2_em_i2 = c2_em_i2 + 1) {
      _SFD_DATA_RANGE_CHECK((real_T)c2_CentroidArray()[(c2_em_i1 << 1) +
       c2_em_i2], 5U);
    }
  }
  for(c2_em_i3 = 0; c2_em_i3 < 4; c2_em_i3 = c2_em_i3 + 1) {
    _SFD_DATA_RANGE_CHECK((real_T)c2_LineVector()[c2_em_i3], 2U);
  }
  _SFD_DATA_RANGE_CHECK(*c2_booleof(), 3U);
  for(c2_em_i4 = 0; c2_em_i4 < 2; c2_em_i4 = c2_em_i4 + 1) {
    _SFD_DATA_RANGE_CHECK((real_T)c2_StartCoords()[c2_em_i4], 6U);
  }
  for(c2_em_i5 = 0; c2_em_i5 < 2; c2_em_i5 = c2_em_i5 + 1) {
    _SFD_DATA_RANGE_CHECK((real_T)c2_VidSize()[c2_em_i5], 0U);
  }
  _SFD_DATA_RANGE_CHECK((real_T)*c2_CentroidCol(), 4U);
  c2_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,1);
  for(c2_em_i6 = 0; c2_em_i6 < 10; c2_em_i6 = c2_em_i6 + 1) {
    for(c2_em_i7 = 0; c2_em_i7 < 2; c2_em_i7 = c2_em_i7 + 1) {
      c2_b_CentroidArray[c2_em_i6][c2_em_i7] = c2_CentroidArray()[(c2_em_i6 <<
        1) + c2_em_i7];
    }
  }
  c2_b_booleof = *c2_booleof();
  for(c2_em_i8 = 0; c2_em_i8 < 2; c2_em_i8 = c2_em_i8 + 1) {
    c2_b_StartCoords[c2_em_i8] = c2_StartCoords()[c2_em_i8];
    c2_b_VidSize[c2_em_i8] = c2_VidSize()[c2_em_i8];
  }
  sf_debug_push_symbol_scope(15U, 0U);
  sf_debug_symbol_scope_add_symbol("LastCentroid", 5, 1U, 2U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 1, &chartInstance.c2_LastCentroid, 0);
  sf_debug_symbol_scope_add_symbol("centroid", 5, 1U, 2U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 1, &c2_centroid, 0);
  sf_debug_symbol_scope_add_symbol("i", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_i, 0);
  sf_debug_symbol_scope_add_symbol("m", 5, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c2_m, 0);
  sf_debug_symbol_scope_add_symbol("myvector", 5, 2U, 1U, 10U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 1, &c2_myvector, 0);
  sf_debug_symbol_scope_add_symbol("ally", 5, 2U, 1U, 10U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 1, &c2_ally, 0);
  sf_debug_symbol_scope_add_symbol("allx", 5, 2U, 1U, 10U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 1, &c2_allx, 0);
  sf_debug_symbol_scope_add_symbol("z", 5, 1U, 2U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 1, &c2_z, 0);
  sf_debug_symbol_scope_add_symbol("CentroidCol", 5, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c2_b_CentroidCol, 0);
  sf_debug_symbol_scope_add_symbol("LineVector", 5, 2U, 1U, 4U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 1, &c2_b_LineVector, 0);
  sf_debug_symbol_scope_add_symbol("CentroidCoords", 5, 1U, 2U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 1, &c2_b_CentroidCoords, 0);
  sf_debug_symbol_scope_add_symbol("VidSize", 5, 1U, 2U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 1, &c2_b_VidSize, 0);
  sf_debug_symbol_scope_add_symbol("StartCoords", 5, 1U, 2U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 1, &c2_b_StartCoords, 0);
  sf_debug_symbol_scope_add_symbol("booleof", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c2_b_booleof, 0);
  sf_debug_symbol_scope_add_symbol("CentroidArray", 5, 2U, 2U, 10U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 1, &c2_b_CentroidArray, 0);
  CV_EML_FCN(0, 0);
  /*  This block supports an embeddable subset of the MATLAB language. */
  /*  See the help menu for details.  */
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,6);
  if(CV_EML_COND(0, 0, !chartInstance.c2_LastCentroid_not_empty)) {
  } else {
    c2_r = true;
    if(CV_EML_COND(0, 1, c2_b_booleof == (real_T)c2_r)) {
    } else {
      CV_EML_MCDC(0, 0, false);
      CV_EML_IF(0, 0, false);
      goto label_1;
    }
  }
  CV_EML_MCDC(0, 0, true);
  CV_EML_IF(0, 0, true);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,7);
  for(c2_em_i9 = 0; c2_em_i9 < 2; c2_em_i9 = c2_em_i9 + 1) {
    chartInstance.c2_LastCentroid[c2_em_i9] = c2_b_StartCoords[c2_em_i9];
  }
  chartInstance.c2_LastCentroid_not_empty = true;
  label_1:;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,10);
  for(c2_em_i10 = 0; c2_em_i10 < 2; c2_em_i10 = c2_em_i10 + 1) {
    c2_z[c2_em_i10] = chartInstance.c2_LastCentroid[c2_em_i10];
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
  for(c2_em_i11 = 0; c2_em_i11 < 10; c2_em_i11 = c2_em_i11 + 1) {
    c2_c_CentroidArray[c2_em_i11][0] = c2_b_CentroidArray[c2_em_i11][0];
  }
  c2_b_z = c2_z[0];
  for(c2_em_i12 = 0; c2_em_i12 < 10; c2_em_i12 = c2_em_i12 + 1) {
    c2_em_u0 = (uint32_T)c2_c_CentroidArray[c2_em_i12][0];
    c2_em_u1 = c2_em_u0 - (uint32_T)c2_b_z;
    if(c2_em_u1 > c2_em_u0) {
      c2_em_u1 = 0U;
    }
    c2_em_u2 = c2_em_u1;
    if(c2_em_u2 > 65535U) {
      c2_em_u3 = MAX_uint16_T;
    } else {
      c2_em_u3 = (uint16_T)c2_em_u2;
    }
    c2_allx[c2_em_i12][0] = c2_em_u3;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,13);
  for(c2_em_i13 = 0; c2_em_i13 < 10; c2_em_i13 = c2_em_i13 + 1) {
    c2_d_CentroidArray[c2_em_i13][0] = c2_b_CentroidArray[c2_em_i13][1];
  }
  c2_c_z = c2_z[1];
  for(c2_em_i14 = 0; c2_em_i14 < 10; c2_em_i14 = c2_em_i14 + 1) {
    c2_em_u4 = (uint32_T)c2_d_CentroidArray[c2_em_i14][0];
    c2_em_u5 = c2_em_u4 - (uint32_T)c2_c_z;
    if(c2_em_u5 > c2_em_u4) {
      c2_em_u5 = 0U;
    }
    c2_em_u6 = c2_em_u5;
    if(c2_em_u6 > 65535U) {
      c2_em_u7 = MAX_uint16_T;
    } else {
      c2_em_u7 = (uint16_T)c2_em_u6;
    }
    c2_ally[c2_em_i14][0] = c2_em_u7;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,14);
  for(c2_em_i15 = 0; c2_em_i15 < 10; c2_em_i15 = c2_em_i15 + 1) {
    c2_b_allx[c2_em_i15][0] = c2_allx[c2_em_i15][0];
  }
  c2_power((uint16_T *)c2_b_allx, 2.0, (uint16_T *)c2_em_uv0);
  for(c2_em_i16 = 0; c2_em_i16 < 10; c2_em_i16 = c2_em_i16 + 1) {
    c2_b_ally[c2_em_i16][0] = c2_ally[c2_em_i16][0];
  }
  c2_power((uint16_T *)c2_b_ally, 2.0, (uint16_T *)c2_em_uv1);
  for(c2_em_i17 = 0; c2_em_i17 < 10; c2_em_i17 = c2_em_i17 + 1) {
    c2_em_u8 = (uint32_T)c2_em_uv0[c2_em_i17][0] +
      (uint32_T)c2_em_uv1[c2_em_i17][0];
    if(c2_em_u8 > 65535U) {
      c2_em_u9 = MAX_uint16_T;
    } else {
      c2_em_u9 = (uint16_T)c2_em_u8;
    }
    c2_myvector[c2_em_i17][0] = c2_em_u9;
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,15);
  for(c2_em_i18 = 0; c2_em_i18 < 10; c2_em_i18 = c2_em_i18 + 1) {
    c2_x[c2_em_i18][0] = c2_myvector[c2_em_i18][0];
    c2_b_x[c2_em_i18][0] = c2_x[c2_em_i18][0];
  }
  c2_jstart = 1.0;
  c2_minval = (*(uint16_T (*)[10])&c2_b_x)[0];
  c2_indx = c2_jstart;
  c2_j1 = 2.0;
  while(c2_j1 <= 10.0) {
    c2_b_j1 = c2_j1;
    c2_a = (*(uint16_T
      (*)[10])&c2_b_x)[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("x",
     (int32_T)_SFD_INTEGER_CHECK("j1", c2_b_j1), 1, 10, 1)
    - 1];
    c2_b = c2_minval;
    c2_p = (c2_a < c2_b);
    if(c2_p) {
      c2_minval = (*(uint16_T
        (*)[10])&c2_b_x)[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("x",
       (int32_T)_SFD_INTEGER_CHECK("j1", c2_b_j1), 1, 10
       , 1) - 1];
      c2_indx = c2_b_j1;
    }
    c2_j1 = c2_j1 + 1.0;
    sf_mex_listen_for_ctrl_c(chartInstance.S);
  }
  c2_b_minval = c2_minval;
  c2_b_indx = c2_indx;
  c2_m = c2_b_minval;
  c2_i = c2_b_indx;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,16);
  for(c2_em_i19 = 0; c2_em_i19 < 2; c2_em_i19 = c2_em_i19 + 1) {
    c2_centroid[c2_em_i19] =
      c2_b_CentroidArray[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("CentroidArray",
     (int32_T)_SFD_INTEGER_CHECK("i",
      c2_i), 1, 10, 2) - 1][c2_em_iv0[c2_em_i19][0]];
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,18);
  if(CV_EML_COND(0, 2, (real_T)(*(uint16_T
      (*)[10])&c2_myvector)[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("myvector",
     (int32_T)
     _SFD_INTEGER_CHECK("i", c2_i), 1, 10, 1) - 1] < 10000.0) && CV_EML_COND(0,
    3, (real_T)c2_centroid[0] > 0.0) && CV_EML_COND(0, 4, (
     real_T)c2_centroid[1] > 10.0)) {
    CV_EML_MCDC(0, 1, true);
    CV_EML_IF(0, 1, true);
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,19);
    for(c2_em_i20 = 0; c2_em_i20 < 2; c2_em_i20 = c2_em_i20 + 1) {
      chartInstance.c2_LastCentroid[c2_em_i20] = c2_centroid[c2_em_i20];
    }
    chartInstance.c2_LastCentroid_not_empty = true;
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,20);
    for(c2_em_i21 = 0; c2_em_i21 < 2; c2_em_i21 = c2_em_i21 + 1) {
      c2_b_CentroidCoords[c2_em_i21] = c2_centroid[c2_em_i21];
    }
  } else {
    CV_EML_MCDC(0, 1, false);
    CV_EML_IF(0, 1, false);
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,22);
    for(c2_em_i22 = 0; c2_em_i22 < 2; c2_em_i22 = c2_em_i22 + 1) {
      c2_b_CentroidCoords[c2_em_i22] = c2_z[c2_em_i22];
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,25);
  c2_A = c2_b_VidSize[1];
  c2_B = 2.0;
  c2_c_x = c2_A;
  c2_y = c2_B;
  c2_d_x = c2_c_x;
  c2_b_y = c2_y;
  c2_k = 1.0;
  c2_b_k = c2_k;
  _SFD_EML_ARRAY_BOUNDS_CHECK("y", (int32_T)_SFD_INTEGER_CHECK("k", c2_b_k), 1,
   1, 1);
  if(c2_b_y == 0.0) {
    sf_mex_call("warning", 0U, 1U, 15, "Divide by zero.");
  }
  c2_e_x = c2_d_x;
  c2_c_y = c2_b_y;
  c2_c_k = 1.0;
  c2_d_k = c2_c_k;
  c2_f_x = c2_e_x;
  c2_xk = c2_f_x;
  c2_b_xk = (real_T)c2_xk;
  c2_g_x = c2_c_y;
  c2_c_xk = c2_g_x;
  c2_yk = c2_c_xk;
  c2_zk = c2_b_xk / c2_yk;
  _SFD_EML_ARRAY_BOUNDS_CHECK("z", (int32_T)_SFD_INTEGER_CHECK("k", c2_d_k), 1,
   1, 1);
  c2_em_d0 = c2_zk;
  c2_em_d1 = c2_em_d0 < 0.0 ? ceil(c2_em_d0 - 0.5) : floor(c2_em_d0 + 0.5);
 c2_d_z = (uint16_T)(c2_em_d1 <= 65535.0 ? c2_em_d1 >= 0.0 ? c2_em_d1 : 0.0 :
    65535.0);
  c2_e_z = c2_d_z;
  c2_f_z = c2_e_z;
  c2_d_y = c2_f_z;
  c2_b_LineVector[0][0] = c2_b_VidSize[0];
  c2_b_LineVector[1][0] = c2_d_y;
  c2_b_LineVector[2][0] = c2_b_CentroidCoords[0];
  c2_b_LineVector[3][0] = c2_b_CentroidCoords[1];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,26);
  c2_b_CentroidCol = c2_b_CentroidCoords[1];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-26);
  sf_debug_pop_symbol_scope();
  for(c2_em_i23 = 0; c2_em_i23 < 2; c2_em_i23 = c2_em_i23 + 1) {
    c2_CentroidCoords()[c2_em_i23] = c2_b_CentroidCoords[c2_em_i23];
  }
  for(c2_em_i24 = 0; c2_em_i24 < 4; c2_em_i24 = c2_em_i24 + 1) {
    c2_LineVector()[c2_em_i24] = c2_b_LineVector[c2_em_i24][0];
  }
  *c2_CentroidCol() = c2_b_CentroidCol;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
  _sfEvent_ = c2_previousEvent;
  sf_debug_check_for_state_inconsistency(_object_tracker_intensityMachineNumber_,
   chartInstance.chartNumber, chartInstance.
   instanceNumber);
}
static void sf_c3_object_tracker_without_centroid(void)
{
  int32_T c3_em_i0;
  uint8_T c3_previousEvent;
  real_T c3_b_CentroidCol;
  int32_T c3_em_i1;
  real_T c3_b_StartCoords[2];
  int32_T c3_b_BlobCount;
  real_T c3_ScreenCenter;
  real_T c3_DIFFTHRESHOLD;
  real_T c3_STOP;
  real_T c3_RIGHT;
  real_T c3_LEFT;
  real_T c3_STRAIGHT;
  real_T c3_b_DirectionCode;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  _SFD_DATA_RANGE_CHECK(*c3_CentroidCol(), 2U);
  for(c3_em_i0 = 0; c3_em_i0 < 2; c3_em_i0 = c3_em_i0 + 1) {
    _SFD_DATA_RANGE_CHECK(c3_StartCoords()[c3_em_i0], 3U);
  }
  _SFD_DATA_RANGE_CHECK(*c3_DirectionCode(), 0U);
  _SFD_DATA_RANGE_CHECK((real_T)*c3_BlobCount(), 1U);
  c3_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,2);
  c3_b_CentroidCol = *c3_CentroidCol();
  for(c3_em_i1 = 0; c3_em_i1 < 2; c3_em_i1 = c3_em_i1 + 1) {
    c3_b_StartCoords[c3_em_i1] = c3_StartCoords()[c3_em_i1];
  }
  c3_b_BlobCount = *c3_BlobCount();
  sf_debug_push_symbol_scope(10U, 0U);
  sf_debug_symbol_scope_add_symbol("ScreenCenter", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c3_ScreenCenter, 0);
  sf_debug_symbol_scope_add_symbol("DIFFTHRESHOLD", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c3_DIFFTHRESHOLD, 0);
  sf_debug_symbol_scope_add_symbol("STOP", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_STOP, 0);
  sf_debug_symbol_scope_add_symbol("RIGHT", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_RIGHT, 0);
  sf_debug_symbol_scope_add_symbol("LEFT", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_LEFT, 0);
  sf_debug_symbol_scope_add_symbol("STRAIGHT", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c3_STRAIGHT, 0);
  sf_debug_symbol_scope_add_symbol("DirectionCode", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c3_b_DirectionCode, 0);
  sf_debug_symbol_scope_add_symbol("BlobCount", 6, 0U, 0U, 0U, 0U, 1.0, 0, 0.0,
   0U, 0, 0U, 0, &c3_b_BlobCount, 0);
  sf_debug_symbol_scope_add_symbol("StartCoords", 0, 1U, 2U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 1, &c3_b_StartCoords, 0);
  sf_debug_symbol_scope_add_symbol("CentroidCol", 0, 0U, 0U, 0U, 0U, 1.0, 0,
   0.0, 0U, 0, 0U, 0, &c3_b_CentroidCol, 0);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,3);
  c3_STRAIGHT = 1.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
  c3_LEFT = 2.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
  c3_RIGHT = 3.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,6);
  c3_STOP = 4.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,8);
  c3_DIFFTHRESHOLD = 20.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,9);
  c3_ScreenCenter = c3_b_StartCoords[1];
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,11);
  if(CV_EML_IF(0, 0, (real_T)c3_b_BlobCount == 0.0)) {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
    c3_b_DirectionCode = c3_STOP;
  } else {
    _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,13);
    if(CV_EML_IF(0, 1, c3_b_CentroidCol < c3_ScreenCenter - c3_DIFFTHRESHOLD)) {
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,14);
      c3_b_DirectionCode = c3_LEFT;
    } else {
      _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,15);
      if(CV_EML_IF(0, 2, c3_b_CentroidCol > c3_ScreenCenter + c3_DIFFTHRESHOLD))
      {
        _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,16);
        c3_b_DirectionCode = c3_RIGHT;
      } else {
        _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,18);
        c3_b_DirectionCode = c3_STRAIGHT;
      }
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-18);
  sf_debug_pop_symbol_scope();
  *c3_DirectionCode() = c3_b_DirectionCode;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
  _sfEvent_ = c3_previousEvent;
  sf_debug_check_for_state_inconsistency(_object_tracker_without_centroidMachineNumber_,
   chartInstance.chartNumber, chartInstance.
   instanceNumber);
}