Ejemplo n.º 1
0
/* Function: mdlOutputs =======================================================
 *
*/
static void mdlOutputs(SimStruct *S, int_T tid)
{
    const uint32_T   *set_BaudRate  = (const uint32_T*) ssGetInputPortSignal(S,0);
    const int16_T   *data_send  = (const int16_T*) ssGetInputPortSignal(S,1);
    int16_T        *data_out  = (int16_T *)ssGetOutputPortRealSignal(S,0);
    int16_T        *data_new_flag  = (int16_T *)ssGetOutputPortRealSignal(S,1);
    real_T        *HL_Status  = (real_T *)ssGetOutputPortRealSignal(S,2);
    int16_T        *realTime  = (int16_T *)ssGetOutputPortRealSignal(S,3);
    
   real_T             t_previousSimTime = ssGetRWorkValue(S,0);
   time_T            t_SimTime = ssGetT(S);
   real_T             t_diff = 0.0;
   real_T             dt;
   real_T             t_current=getTime();
   real_T             t_0=t_current;
   real_T             t_previous=t_current;
   real_T             t_elapsed;
   real_T        *y0  = (real_T *)ssGetOutputPortRealSignal(S,0);
   real_T       t_pre=ssGetRWorkValue(S,1);
   real_T       t_pre0=ssGetRWorkValue(S,2);
   real_T       t_term=ssGetRWorkValue(S,3);
   real_T       t_realTime=t_current-t_pre0;
   /* Desired Delta time */
   dt = (t_SimTime - t_previousSimTime) ;
   /* Get clock time at the beginning of this step*/   


   if(t_0-t_pre>(dt+0.001))
  {
	printf("Warning:It is slower than the real time::%f\r\n",t_0-t_pre);
 }
  t_pre= t_0;
   
   /* Store current time to be used in next time step*/
   


    /* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */
//static int FTDIopen=0;
if (openFtdi==0)
{
    openFtdi = open_ftdi(*set_BaudRate, "Quad_USB2", 5, 15);
}

if (openFtdi == 1)
{
    
    *data_new_flag = read_ftdi (data_out, HL_Status);
       while (t_realTime<t_term-dt/2){/*(t_diff<dt){*/
        t_current =  getTime();
        t_realTime=t_current-t_pre0;
        
        /* Look for wrapup */
        if (t_current<t_previous){
            t_elapsed = t_previous - t_0;
            t_0 = getTime() - t_elapsed;
        }
        t_diff = t_current - t_0;
        t_previous = t_current;
   }
    send_ftdi (data_send);
}
else
{
    *data_new_flag = -1;
}
     /* Wait to reach the desired time */
   while (t_realTime<t_term){/*(t_diff<dt){*/
        t_current =  getTime();
        t_realTime=t_current-t_pre0;
        
        /* Look for wrapup */
        if (t_current<t_previous){
            t_elapsed = t_previous - t_0;
            t_0 = getTime() - t_elapsed;
        }
        t_diff = t_current - t_0;
        t_previous = t_current;
   }
 ssSetRWorkValue(S, 0, t_SimTime);
 ssSetRWorkValue(S,1,t_pre);
 ssSetRWorkValue(S,3,t_realTime+dt);
 *realTime=t_0-t_pre0;
//    Quadlinux_Com_Outputs_wrapper(set_BaudRate, data_send, data_out, data_new_flag, HL_Status, bytes_sent);
}
Ejemplo n.º 2
0
static void sf_c3_controller1(SFc3_controller1InstanceStruct *chartInstance)
{
  int32_T c3_previousEvent;
  real_T c3_hoistedGlobal;
  real_T c3_u;
  uint32_T c3_debug_family_var_map[5];
  real_T c3_T;
  real_T c3_nargin = 1.0;
  real_T c3_nargout = 1.0;
  real_T c3_y;
  real_T c3_x;
  real_T c3_b_x;
  real_T c3_b_y;
  real_T c3_c_x;
  real_T c3_d_x;
  real_T c3_c_y;
  real_T c3_b;
  real_T c3_d_y;
  real_T c3_A;
  real_T c3_B;
  real_T c3_e_x;
  real_T c3_e_y;
  real_T c3_f_x;
  real_T c3_f_y;
  real_T c3_g_x;
  real_T c3_g_y;
  real_T *c3_b_u;
  real_T *c3_h_y;
  c3_h_y = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c3_b_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 2);
  _SFD_DATA_RANGE_CHECK(*c3_b_u, 0U);
  _SFD_DATA_RANGE_CHECK(*c3_h_y, 1U);
  c3_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 2);
  c3_hoistedGlobal = *c3_b_u;
  c3_u = c3_hoistedGlobal;
  sf_debug_symbol_scope_push_eml(0U, 5U, 5U, c3_debug_family_names,
    c3_debug_family_var_map);
  sf_debug_symbol_scope_add_eml(&c3_T, c3_sf_marshall, 0U);
  sf_debug_symbol_scope_add_eml(&c3_nargin, c3_sf_marshall, 1U);
  sf_debug_symbol_scope_add_eml(&c3_nargout, c3_sf_marshall, 2U);
  sf_debug_symbol_scope_add_eml(&c3_u, c3_sf_marshall, 3U);
  sf_debug_symbol_scope_add_eml(&c3_y, c3_sf_marshall, 4U);
  CV_EML_FCN(0, 0);

  /*  hard limit cutoff function. */
  _SFD_EML_CALL(0, 4);
  c3_T = 100.0;
  _SFD_EML_CALL(0, 5);
  c3_x = c3_u;
  c3_b_x = c3_x;
  c3_b_y = muDoubleScalarAbs(c3_b_x);
  if (CV_EML_IF(0, 0, c3_b_y > c3_T)) {
    _SFD_EML_CALL(0, 6);
    c3_c_x = c3_u;
    c3_d_x = c3_c_x;
    c3_c_y = muDoubleScalarAbs(c3_d_x);
    c3_b = c3_c_y;
    c3_d_y = 100.0 * c3_b;
    c3_A = c3_d_y;
    c3_B = c3_u;
    c3_e_x = c3_A;
    c3_e_y = c3_B;
    c3_f_x = c3_e_x;
    c3_f_y = c3_e_y;
    c3_g_x = c3_f_x;
    c3_g_y = c3_f_y;
    c3_u = c3_g_x / c3_g_y;
  }

  _SFD_EML_CALL(0, 8);
  c3_y = c3_u;
  _SFD_EML_CALL(0, -8);
  sf_debug_symbol_scope_pop();
  *c3_h_y = c3_y;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 2);
  _sfEvent_ = c3_previousEvent;
  sf_debug_check_for_state_inconsistency(_controller1MachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 3
0
static void disable_c3_controller1(SFc3_controller1InstanceStruct *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 4
0
static void disable_c7_ekffede(SFc7_ekffedeInstanceStruct *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 5
0
/* Function Definitions */
static void initialize_c6_TTR_mdl(SFc6_TTR_mdlInstanceStruct *chartInstance)
{
  chartInstance->c6_sfEvent = CALL_EVENT;
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  chartInstance->c6_is_active_c6_TTR_mdl = 0U;
}
Ejemplo n.º 6
0
/* Function Definitions */
static void initialize_c2_MPC_framework(void)
{
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  chartInstance.c2_is_active_c2_MPC_framework = 0U;
}
Ejemplo n.º 7
0
static void sf_c7_ekffede(SFc7_ekffedeInstanceStruct *chartInstance)
{
  real_T c7_hoistedGlobal;
  real_T c7_b_hoistedGlobal;
  real_T c7_c_hoistedGlobal;
  real_T c7_d_hoistedGlobal;
  real_T c7_e_hoistedGlobal;
  real_T c7_sfasamento;
  real_T c7_ampiezza;
  real_T c7_frequenza;
  real_T c7_noise;
  real_T c7_t;
  uint32_T c7_debug_family_var_map[8];
  real_T c7_nargin = 5.0;
  real_T c7_nargout = 1.0;
  real_T c7_wave;
  real_T c7_b;
  real_T c7_y;
  real_T c7_a;
  real_T c7_b_b;
  real_T c7_b_y;
  real_T c7_x;
  real_T c7_b_x;
  real_T c7_b_a;
  real_T c7_c_b;
  real_T c7_c_y;
  real_T *c7_b_sfasamento;
  real_T *c7_b_wave;
  real_T *c7_b_ampiezza;
  real_T *c7_b_frequenza;
  real_T *c7_b_noise;
  real_T *c7_b_t;
  c7_b_t = (real_T *)ssGetInputPortSignal(chartInstance->S, 4);
  c7_b_noise = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);
  c7_b_frequenza = (real_T *)ssGetInputPortSignal(chartInstance->S, 2);
  c7_b_ampiezza = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);
  c7_b_wave = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c7_b_sfasamento = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 6U, chartInstance->c7_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c7_b_sfasamento, 0U);
  _SFD_DATA_RANGE_CHECK(*c7_b_wave, 1U);
  _SFD_DATA_RANGE_CHECK(*c7_b_ampiezza, 2U);
  _SFD_DATA_RANGE_CHECK(*c7_b_frequenza, 3U);
  _SFD_DATA_RANGE_CHECK(*c7_b_noise, 4U);
  _SFD_DATA_RANGE_CHECK(*c7_b_t, 5U);
  chartInstance->c7_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 6U, chartInstance->c7_sfEvent);
  c7_hoistedGlobal = *c7_b_sfasamento;
  c7_b_hoistedGlobal = *c7_b_ampiezza;
  c7_c_hoistedGlobal = *c7_b_frequenza;
  c7_d_hoistedGlobal = *c7_b_noise;
  c7_e_hoistedGlobal = *c7_b_t;
  c7_sfasamento = c7_hoistedGlobal;
  c7_ampiezza = c7_b_hoistedGlobal;
  c7_frequenza = c7_c_hoistedGlobal;
  c7_noise = c7_d_hoistedGlobal;
  c7_t = c7_e_hoistedGlobal;
  sf_debug_symbol_scope_push_eml(0U, 8U, 8U, c7_debug_family_names,
    c7_debug_family_var_map);
  sf_debug_symbol_scope_add_eml_importable(&c7_nargin, 0U, c7_sf_marshallOut,
    c7_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c7_nargout, 1U, c7_sf_marshallOut,
    c7_sf_marshallIn);
  sf_debug_symbol_scope_add_eml(&c7_sfasamento, 2U, c7_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c7_ampiezza, 3U, c7_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c7_frequenza, 4U, c7_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c7_noise, 5U, c7_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(&c7_t, 6U, c7_sf_marshallOut);
  sf_debug_symbol_scope_add_eml_importable(&c7_wave, 7U, c7_sf_marshallOut,
    c7_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 4);
  c7_b = c7_frequenza;
  c7_y = 6.2831853071795862 * c7_b;
  c7_a = c7_y;
  c7_b_b = c7_t;
  c7_b_y = c7_a * c7_b_b;
  c7_x = c7_sfasamento + c7_b_y;
  c7_b_x = c7_x;
  c7_b_x = muDoubleScalarSin(c7_b_x);
  c7_b_a = c7_ampiezza;
  c7_c_b = c7_b_x;
  c7_c_y = c7_b_a * c7_c_b;
  c7_wave = c7_c_y + c7_noise;
  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, -4);
  sf_debug_symbol_scope_pop();
  *c7_b_wave = c7_wave;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 6U, chartInstance->c7_sfEvent);
  sf_debug_check_for_state_inconsistency(_ekffedeMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 8
0
static void sf_c12_ekffedepre(SFc12_ekffedepreInstanceStruct *chartInstance)
{
  int32_T c12_i2;
  int32_T c12_i3;
  int32_T c12_i4;
  real_T c12_Q_bias[3];
  uint32_T c12_debug_family_var_map[4];
  real_T c12_nargin = 1.0;
  real_T c12_nargout = 1.0;
  real_T c12_y[9];
  int32_T c12_i5;
  real_T c12_v[3];
  int32_T c12_i6;
  int32_T c12_j;
  int32_T c12_b_j;
  int32_T c12_a;
  int32_T c12_c;
  int32_T c12_i7;
  real_T (*c12_b_y)[9];
  real_T (*c12_b_Q_bias)[3];
  c12_b_y = (real_T (*)[9])ssGetOutputPortSignal(chartInstance->S, 1);
  c12_b_Q_bias = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 11U, chartInstance->c12_sfEvent);
  for (c12_i2 = 0; c12_i2 < 3; c12_i2++) {
    _SFD_DATA_RANGE_CHECK((*c12_b_Q_bias)[c12_i2], 0U);
  }

  for (c12_i3 = 0; c12_i3 < 9; c12_i3++) {
    _SFD_DATA_RANGE_CHECK((*c12_b_y)[c12_i3], 1U);
  }

  chartInstance->c12_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 11U, chartInstance->c12_sfEvent);
  for (c12_i4 = 0; c12_i4 < 3; c12_i4++) {
    c12_Q_bias[c12_i4] = (*c12_b_Q_bias)[c12_i4];
  }

  sf_debug_symbol_scope_push_eml(0U, 4U, 4U, c12_debug_family_names,
    c12_debug_family_var_map);
  sf_debug_symbol_scope_add_eml_importable(&c12_nargin, 0U, c12_c_sf_marshallOut,
    c12_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c12_nargout, 1U,
    c12_c_sf_marshallOut, c12_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml(c12_Q_bias, 2U, c12_b_sf_marshallOut);
  sf_debug_symbol_scope_add_eml_importable(c12_y, 3U, c12_sf_marshallOut,
    c12_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c12_sfEvent, 4);
  for (c12_i5 = 0; c12_i5 < 3; c12_i5++) {
    c12_v[c12_i5] = c12_Q_bias[c12_i5];
  }

  for (c12_i6 = 0; c12_i6 < 9; c12_i6++) {
    c12_y[c12_i6] = 0.0;
  }

  for (c12_j = 1; c12_j < 4; c12_j++) {
    c12_b_j = c12_j;
    c12_a = c12_b_j;
    c12_c = c12_a;
    c12_y[(_SFD_EML_ARRAY_BOUNDS_CHECK("", (int32_T)_SFD_INTEGER_CHECK("",
             (real_T)c12_b_j), 1, 3, 1, 0) + 3 * (_SFD_EML_ARRAY_BOUNDS_CHECK("",
             (int32_T)_SFD_INTEGER_CHECK("", (real_T)c12_c), 1, 3, 2, 0) - 1)) -
      1] = c12_v[_SFD_EML_ARRAY_BOUNDS_CHECK("", (int32_T)_SFD_INTEGER_CHECK("",
      (real_T)c12_b_j), 1, 3, 1, 0) - 1];
  }

  _SFD_EML_CALL(0U, chartInstance->c12_sfEvent, -4);
  sf_debug_symbol_scope_pop();
  for (c12_i7 = 0; c12_i7 < 9; c12_i7++) {
    (*c12_b_y)[c12_i7] = c12_y[c12_i7];
  }

  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 11U, chartInstance->c12_sfEvent);
  sf_debug_check_for_state_inconsistency(_ekffedepreMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 9
0
static void enable_c12_ekffedepre(SFc12_ekffedepreInstanceStruct *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
static void sf_c41_heart_model(SFc41_heart_modelInstanceStruct *chartInstance)
{
  boolean_T c41_out;
  boolean_T c41_b_out;
  boolean_T c41_c_out;
  boolean_T c41_temp;
  boolean_T c41_d_out;
  boolean_T c41_e_out;
  boolean_T c41_f_out;
  real_T *c41_v;
  boolean_T *c41_event1;
  boolean_T *c41_event2;
  boolean_T *c41_event3;
  c41_event3 = (boolean_T *)ssGetOutputPortSignal(chartInstance->S, 3);
  c41_event2 = (boolean_T *)ssGetOutputPortSignal(chartInstance->S, 2);
  c41_event1 = (boolean_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c41_v = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  c41_set_sim_state_side_effects_c41_heart_model(chartInstance);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 38U, chartInstance->c41_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c41_v, 0U);
  chartInstance->c41_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 38U, chartInstance->c41_sfEvent);
  if (chartInstance->c41_is_active_c41_heart_model == 0) {
    _SFD_CC_CALL(CHART_ENTER_ENTRY_FUNCTION_TAG, 38U, chartInstance->c41_sfEvent);
    chartInstance->c41_is_active_c41_heart_model = 1U;
    _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 38U, chartInstance->c41_sfEvent);
    _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG, 0U,
                 chartInstance->c41_sfEvent);
    _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
    chartInstance->c41_is_c41_heart_model = c41_IN_state;
    _SFD_CS_CALL(STATE_ACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
    chartInstance->c41_tp_state = 1U;
  } else {
    _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c41_sfEvent);
    _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG, 1U,
                 chartInstance->c41_sfEvent);
    c41_out = (CV_TRANSITION_EVAL(1U, (int32_T)_SFD_CCP_CALL(1U, 0, *c41_v <
      20.0 != 0U, chartInstance->c41_sfEvent)) != 0);
    if (c41_out) {
      if (sf_debug_transition_conflict_check_enabled()) {
        unsigned int transitionList[3];
        unsigned int numTransitions = 1;
        transitionList[0] = 1;
        sf_debug_transition_conflict_check_begin();
        c41_b_out = ((*c41_v >= 20.0) && (*c41_v < 138.0));
        if (c41_b_out) {
          transitionList[numTransitions] = 2;
          numTransitions++;
        }

        c41_c_out = (*c41_v >= 138.0);
        if (c41_c_out) {
          transitionList[numTransitions] = 3;
          numTransitions++;
        }

        sf_debug_transition_conflict_check_end();
        if (numTransitions > 1) {
          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
        }
      }

      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 1U, chartInstance->c41_sfEvent);
      chartInstance->c41_tp_state = 0U;
      chartInstance->c41_is_c41_heart_model = c41_IN_NO_ACTIVE_CHILD;
      _SFD_CS_CALL(STATE_INACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
      chartInstance->c41_event1EventCounter++;
      chartInstance->c41_is_c41_heart_model = c41_IN_state;
      _SFD_CS_CALL(STATE_ACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
      chartInstance->c41_tp_state = 1U;
    } else {
      _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG, 2U,
                   chartInstance->c41_sfEvent);
      c41_temp = (_SFD_CCP_CALL(2U, 0, *c41_v >= 20.0 != 0U,
        chartInstance->c41_sfEvent) != 0);
      if (c41_temp) {
        c41_temp = (_SFD_CCP_CALL(2U, 1, *c41_v < 138.0 != 0U,
          chartInstance->c41_sfEvent) != 0);
      }

      c41_d_out = (CV_TRANSITION_EVAL(2U, (int32_T)c41_temp) != 0);
      if (c41_d_out) {
        if (sf_debug_transition_conflict_check_enabled()) {
          unsigned int transitionList[2];
          unsigned int numTransitions = 1;
          transitionList[0] = 2;
          sf_debug_transition_conflict_check_begin();
          c41_e_out = (*c41_v >= 138.0);
          if (c41_e_out) {
            transitionList[numTransitions] = 3;
            numTransitions++;
          }

          sf_debug_transition_conflict_check_end();
          if (numTransitions > 1) {
            _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
          }
        }

        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 2U, chartInstance->c41_sfEvent);
        chartInstance->c41_tp_state = 0U;
        chartInstance->c41_is_c41_heart_model = c41_IN_NO_ACTIVE_CHILD;
        _SFD_CS_CALL(STATE_INACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
        chartInstance->c41_event2EventCounter++;
        chartInstance->c41_is_c41_heart_model = c41_IN_state;
        _SFD_CS_CALL(STATE_ACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
        chartInstance->c41_tp_state = 1U;
      } else {
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG, 3U,
                     chartInstance->c41_sfEvent);
        c41_f_out = (CV_TRANSITION_EVAL(3U, (int32_T)_SFD_CCP_CALL(3U, 0, *c41_v
          >= 138.0 != 0U, chartInstance->c41_sfEvent)) != 0);
        if (c41_f_out) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 3U, chartInstance->c41_sfEvent);
          chartInstance->c41_tp_state = 0U;
          chartInstance->c41_is_c41_heart_model = c41_IN_NO_ACTIVE_CHILD;
          _SFD_CS_CALL(STATE_INACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
          chartInstance->c41_event3EventCounter++;
          chartInstance->c41_is_c41_heart_model = c41_IN_state;
          _SFD_CS_CALL(STATE_ACTIVE_TAG, 0U, chartInstance->c41_sfEvent);
          chartInstance->c41_tp_state = 1U;
        }
      }
    }

    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c41_sfEvent);
  }

  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 38U, chartInstance->c41_sfEvent);
  if (chartInstance->c41_event1EventCounter > 0U) {
    *c41_event1 = !*c41_event1;
    chartInstance->c41_event1EventCounter--;
  }

  if (chartInstance->c41_event2EventCounter > 0U) {
    *c41_event2 = !*c41_event2;
    chartInstance->c41_event2EventCounter--;
  }

  if (chartInstance->c41_event3EventCounter > 0U) {
    *c41_event3 = !*c41_event3;
    chartInstance->c41_event3EventCounter--;
  }

  sf_debug_check_for_state_inconsistency(_heart_modelMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 11
0
static void disable_c2_hapticsSimBlk_pd(SFc2_hapticsSimBlk_pdInstanceStruct
  *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
static void disable_c41_heart_model(SFc41_heart_modelInstanceStruct
  *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
static void disable_c2_DSHMHittingSecondORder
  (SFc2_DSHMHittingSecondORderInstanceStruct *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
static void sf_c2_DSHMHittingSecondORder
  (SFc2_DSHMHittingSecondORderInstanceStruct *chartInstance)
{
  real_T c2_hoistedGlobal;
  real_T c2_b_hoistedGlobal;
  real_T c2_c_hoistedGlobal;
  real_T c2_accel;
  real_T c2_u;
  real_T c2_gain;
  uint32_T c2_debug_family_var_map[6];
  real_T c2_nargin = 3.0;
  real_T c2_nargout = 1.0;
  real_T c2_y;
  real_T c2_x;
  real_T c2_b_x;
  real_T c2_b_y;
  real_T c2_a;
  real_T c2_b;
  real_T *c2_b_accel;
  real_T *c2_b_u;
  real_T *c2_c_y;
  real_T *c2_b_gain;
  c2_b_gain = (real_T *)ssGetInputPortSignal(chartInstance->S, 2);
  c2_c_y = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c2_b_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);
  c2_b_accel = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c2_b_accel, 0U);
  _SFD_DATA_RANGE_CHECK(*c2_b_u, 1U);
  _SFD_DATA_RANGE_CHECK(*c2_c_y, 2U);
  _SFD_DATA_RANGE_CHECK(*c2_b_gain, 3U);
  chartInstance->c2_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  c2_hoistedGlobal = *c2_b_accel;
  c2_b_hoistedGlobal = *c2_b_u;
  c2_c_hoistedGlobal = *c2_b_gain;
  c2_accel = c2_hoistedGlobal;
  c2_u = c2_b_hoistedGlobal;
  c2_gain = c2_c_hoistedGlobal;
  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 6U, 6U, c2_debug_family_names,
    c2_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargin, 0U, c2_sf_marshallOut,
    c2_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_nargout, 1U, c2_sf_marshallOut,
    c2_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c2_accel, 2U, c2_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c2_u, 3U, c2_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c2_gain, 4U, c2_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c2_y, 5U, c2_sf_marshallOut,
    c2_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 4);
  c2_x = c2_accel;
  c2_b_x = c2_x;
  c2_b_y = muDoubleScalarAbs(c2_b_x);
  if (CV_EML_IF(0, 1, 0, c2_b_y < 0.0001)) {
    _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 5);
    c2_y = 0.0;
  } else {
    _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, 7);
    c2_a = c2_u;
    c2_b = c2_gain;
    c2_y = c2_a * c2_b;
  }

  _SFD_EML_CALL(0U, chartInstance->c2_sfEvent, -7);
  _SFD_SYMBOL_SCOPE_POP();
  *c2_c_y = c2_y;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_SYMBOL_SCOPE_POP();
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_DSHMHittingSecondORderMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 15
0
/* Function Definitions */
static void initialize_c2_dsm_demo(SFc2_dsm_demoInstanceStruct *chartInstance)
{
  chartInstance->c2_sfEvent = CALL_EVENT;
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  chartInstance->c2_is_active_c2_dsm_demo = 0U;
}
Ejemplo n.º 16
0
static void sf_c3_varymultiswarm(SFc3_varymultiswarmInstanceStruct
  *chartInstance)
{
  real_T c3_hoistedGlobal;
  real_T c3_b_hoistedGlobal;
  real_T c3_x;
  real_T c3_y;
  uint32_T c3_debug_family_var_map[5];
  real_T c3_nargin = 2.0;
  real_T c3_nargout = 1.0;
  real_T c3_z;
  real_T c3_b_x;
  real_T c3_c_x;
  real_T *c3_d_x;
  real_T *c3_b_y;
  real_T *c3_b_z;
  c3_b_z = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c3_b_y = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);
  c3_d_x = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 2U, chartInstance->c3_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c3_d_x, 0U);
  _SFD_DATA_RANGE_CHECK(*c3_b_y, 1U);
  _SFD_DATA_RANGE_CHECK(*c3_b_z, 2U);
  chartInstance->c3_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent);
  c3_hoistedGlobal = *c3_d_x;
  c3_b_hoistedGlobal = *c3_b_y;
  c3_x = c3_hoistedGlobal;
  c3_y = c3_b_hoistedGlobal;
  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 5U, 5U, c3_debug_family_names,
    c3_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 0U, c3_sf_marshallOut,
    c3_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 1U, c3_sf_marshallOut,
    c3_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_x, 2U, c3_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_y, 3U, c3_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_z, 4U, c3_sf_marshallOut,
    c3_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 3);
  c3_b_x = (26.4196 - c3_mpower(chartInstance, c3_x - 1.44)) - c3_mpower
    (chartInstance, c3_y - 0.3677);
  c3_z = c3_b_x;
  if (c3_z < 0.0) {
    c3_eml_error(chartInstance);
  }

  c3_c_x = c3_z;
  c3_z = c3_c_x;
  c3_z = muDoubleScalarSqrt(c3_z);
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 4);
  c3_z += 1.6;
  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -4);
  _SFD_SYMBOL_SCOPE_POP();
  *c3_b_z = c3_z;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 2U, chartInstance->c3_sfEvent);
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_varymultiswarmMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 17
0
static void disable_c2_dsm_demo(SFc2_dsm_demoInstanceStruct *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 18
0
static void disable_c3_varymultiswarm(SFc3_varymultiswarmInstanceStruct
  *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 19
0
void ) { } static void mdlOutputs ( SimStruct * S , int_T tid ) { real_T
jzxguy1xyo ; ZCEventType zcEvent ; boolean_T is1galx1wr ; real_T iden3vpls2 ;
real_T kewj0jjgdw ; real_T c3hti1p3uf ; int8_T rtPrevAction ; int8_T rtAction
; nmsgyp54ig * _rtB ; bbqvqz25ov * _rtP ; n2g2llwf21 * _rtX ; aa2ep02qn5 *
_rtZCE ; pklu3vjy1t * _rtDW ; _rtDW = ( ( pklu3vjy1t * ) ssGetRootDWork ( S )
) ; _rtZCE = ( ( aa2ep02qn5 * ) _ssGetPrevZCSigState ( S ) ) ; _rtX = ( (
n2g2llwf21 * ) ssGetContStates ( S ) ) ; _rtP = ( ( bbqvqz25ov * )
ssGetModelRtp ( S ) ) ; _rtB = ( ( nmsgyp54ig * ) _ssGetModelBlockIO ( S ) )
; if ( ssIsSampleHit ( S , 4 , 0 ) ) { _rtB -> jbbkv4upvi = _rtDW ->
idaicj53o4 ; } if ( ssIsSampleHit ( S , 1 , 0 ) ) { is1galx1wr = ( _rtB ->
jbbkv4upvi != c22ngqieus ( S ) -> pactsh03am ) ; } jzxguy1xyo = ssGetT ( S )
; if ( ssIsSampleHit ( S , 1 , 0 ) ) { _rtB -> oojsaunz11 = _rtP -> P_5 ;
_rtB -> fmra2cutsa = _rtP -> P_6 ; } _rtB -> fs1ofsmvy2 = muDoubleScalarRem (
jzxguy1xyo + _rtB -> oojsaunz11 , _rtB -> fmra2cutsa ) * _rtP -> P_7 ; _rtB
-> kdd430tca4 = ( ( 2.0 * _rtB -> fs1ofsmvy2 - 1.0 ) + 1.0 ) * 0.5 ; if (
ssIsSampleHit ( S , 1 , 0 ) ) { if ( ssIsMajorTimeStep ( S ) ) { _rtDW ->
fiaf5yjt4n = ( _rtB -> jbbkv4upvi >= _rtB -> kdd430tca4 ) ; } _rtB ->
bonoh3t2uf = ( is1galx1wr && _rtDW -> fiaf5yjt4n ) ; } _rtB -> puvw0myvhu [ 0
] = _rtB -> bonoh3t2uf ; _rtB -> puvw0myvhu [ 1 ] = 0.0 ; _rtB -> puvw0myvhu
[ 2 ] = 0.0 ; _rtDW -> lhiprm3wjz [ 0 ] = ! ( _rtB -> puvw0myvhu [ 0 ] ==
_rtDW -> lhiprm3wjz [ 1 ] ) ; _rtDW -> lhiprm3wjz [ 1 ] = _rtB -> puvw0myvhu
[ 0 ] ; _rtB -> puvw0myvhu [ 3 ] = _rtDW -> lhiprm3wjz [ 0 ] ; if (
ssIsSampleHit ( S , 2 , 0 ) ) { ssCallAccelRunBlock ( S , 9 , 15 ,
SS_CALL_MDL_OUTPUTS ) ; ssCallAccelRunBlock ( S , 9 , 16 ,
SS_CALL_MDL_OUTPUTS ) ; } if ( ssIsSampleHit ( S , 4 , 0 ) ) { _rtB ->
ni0skqgprw = _rtB -> mgrpxotnda [ 2 ] ; } if ( ssIsSampleHit ( S , 2 , 0 ) )
{ ssCallAccelRunBlock ( S , 9 , 20 , SS_CALL_MDL_OUTPUTS ) ; } if (
ssIsSampleHit ( S , 1 , 0 ) ) { zcEvent = rt_ZCFcn ( ANY_ZERO_CROSSING , &
_rtZCE -> mpe2yble25 , ( _rtB -> fs1ofsmvy2 - _rtP -> P_11 ) ) ; if ( _rtDW
-> oosqu0tl1h == 0 ) { if ( zcEvent != NO_ZCEVENT ) { _rtB -> dgvfzxjzqp = !
( _rtB -> dgvfzxjzqp != 0.0 ) ; _rtDW -> oosqu0tl1h = 1 ; } else if ( _rtB ->
dgvfzxjzqp == 1.0 ) { if ( _rtB -> fs1ofsmvy2 != _rtP -> P_11 ) { _rtB ->
dgvfzxjzqp = 0.0 ; } } else { if ( _rtB -> fs1ofsmvy2 == _rtP -> P_11 ) {
_rtB -> dgvfzxjzqp = 1.0 ; } } } else { if ( _rtB -> fs1ofsmvy2 != _rtP ->
P_11 ) { _rtB -> dgvfzxjzqp = 0.0 ; } _rtDW -> oosqu0tl1h = 0 ; } } if (
ssIsSampleHit ( S , 2 , 0 ) ) { ssCallAccelRunBlock ( S , 9 , 23 ,
SS_CALL_MDL_OUTPUTS ) ; ssCallAccelRunBlock ( S , 9 , 33 ,
SS_CALL_MDL_OUTPUTS ) ; iden3vpls2 = _rtP -> P_13 * _rtB -> mgrpxotnda [ 8 ]
; } if ( ssIsSampleHit ( S , 4 , 0 ) ) { _rtB -> gp5orjzg5t = _rtB ->
mgrpxotnda [ 2 ] ; } if ( ssIsSampleHit ( S , 2 , 0 ) ) { kewj0jjgdw = (
iden3vpls2 - _rtB -> gp5orjzg5t ) * _rtB -> nzunlww04y ; } if ( ssIsSampleHit
( S , 4 , 0 ) ) { _rtB -> jw2hkpsksy = _rtB -> gp5orjzg5t * _rtB ->
dvca5kgoqr ; _rtB -> elobzetbdp = _rtB -> mgrpxotnda [ 8 ] ; } if (
ssIsSampleHit ( S , 2 , 0 ) ) { c3hti1p3uf = ( kewj0jjgdw + _rtB ->
jw2hkpsksy ) - _rtB -> elobzetbdp ; if ( ssIsSampleHit ( S , 4 , 0 ) ) { _rtB
-> bc5lqmbcwx = _rtB -> mgrpxotnda [ 9 ] ; } } if ( ssIsSampleHit ( S , 4 , 0
) ) { _rtB -> bpiny53cki = _rtB -> elobzetbdp + _rtB -> bc5lqmbcwx ; } if (
ssIsSampleHit ( S , 2 , 0 ) ) { iden3vpls2 = c3hti1p3uf / _rtB -> bpiny53cki
+ _rtB -> idha0n310x ; if ( iden3vpls2 > _rtP -> P_16 ) { _rtB -> ccrq35nhp3
= _rtP -> P_16 ; } else if ( iden3vpls2 < _rtP -> P_17 ) { _rtB -> ccrq35nhp3
= _rtP -> P_17 ; } else { _rtB -> ccrq35nhp3 = iden3vpls2 ; } } if (
ssIsSampleHit ( S , 4 , 0 ) ) { _rtB -> pvzuuxenvc = _rtB -> ccrq35nhp3 ; }
if ( ssIsSampleHit ( S , 2 , 0 ) ) { _rtB -> ii04l1a0ic = ( _rtB ->
mgrpxotnda [ 9 ] + _rtB -> mgrpxotnda [ 8 ] ) - _rtB -> mgrpxotnda [ 6 ] ;
ssCallAccelRunBlock ( S , 9 , 51 , SS_CALL_MDL_OUTPUTS ) ; rtPrevAction =
_rtDW -> dcumqbbyun ; if ( ssIsMajorTimeStep ( S ) ) { if ( _rtB ->
mgrpxotnda [ 9 ] < 90.199999999999989 ) { rtAction = 0 ; } else { rtAction =
1 ; } _rtDW -> dcumqbbyun = rtAction ; } else { rtAction = _rtDW ->
dcumqbbyun ; } if ( rtPrevAction != rtAction ) { switch ( rtPrevAction ) {
case 0 : ssSetSolverNeedsReset ( S ) ; break ; case 1 : ssSetSolverNeedsReset
( S ) ; break ; case 2 : ssSetSolverNeedsReset ( S ) ; break ; } } switch (
rtAction ) { case 0 : if ( rtAction != rtPrevAction ) { if ( ssGetTaskTime (
S , 2 ) != ssGetTStart ( S ) ) { ssSetSolverNeedsReset ( S ) ; } } _rtB ->
kx5rgsvmx3 = _rtP -> P_0 * _rtB -> mgrpxotnda [ 8 ] ; if ( ssIsMajorTimeStep
( S ) ) { srUpdateBC ( _rtDW -> o5k0zwtbn4 ) ; } break ; case 1 : if (
rtAction != rtPrevAction ) { if ( ssGetTaskTime ( S , 2 ) != ssGetTStart ( S
) ) { ssSetSolverNeedsReset ( S ) ; } } _rtB -> kx5rgsvmx3 = _rtP -> P_1 ; if
( ssIsMajorTimeStep ( S ) ) { srUpdateBC ( _rtDW -> ihoovge3z4 ) ; } break ;
case 2 : if ( rtAction != rtPrevAction ) { if ( ssGetTaskTime ( S , 2 ) !=
ssGetTStart ( S ) ) { ssSetSolverNeedsReset ( S ) ; } } _rtB -> pvzuuxenvc =
_rtP -> P_2 ; if ( ssIsMajorTimeStep ( S ) ) { srUpdateBC ( _rtDW ->
gunoszsdaf ) ; } break ; } } bemu4fk2sq ( S , _rtB -> kwjevd5eqt , 0.0 , &
_rtB -> bemu4fk2sq4 , & _rtDW -> bemu4fk2sq4 , ( mvw1gbh0c1 * ) & _rtP ->
bemu4fk2sq4 , & ( ( npjij2cecc * ) ssGetContStateDisabled ( S ) ) ->
bemu4fk2sq4 ) ; cqabclhqip ( S , _rtB -> donhz1jhkq , 0.0 , & _rtB ->
cqabclhqip4 , & _rtDW -> cqabclhqip4 , ( nneyi35s1a * ) & _rtP -> cqabclhqip4
, & _rtX -> cqabclhqip4 , & ( ( npjij2cecc * ) ssGetContStateDisabled ( S ) )
-> cqabclhqip4 ) ; bemu4fk2sq ( S , _rtB -> jwapqatga5 , 0.0 , & _rtB ->
n1qdzssqu3 , & _rtDW -> n1qdzssqu3 , ( mvw1gbh0c1 * ) & _rtP -> n1qdzssqu3 ,
& ( ( npjij2cecc * ) ssGetContStateDisabled ( S ) ) -> n1qdzssqu3 ) ;
cqabclhqip ( S , _rtB -> p5ierutvgv , 0.0 , & _rtB -> nfugx5ih43 , & _rtDW ->
nfugx5ih43 , ( nneyi35s1a * ) & _rtP -> nfugx5ih43 , & _rtX -> nfugx5ih43 , &
( ( npjij2cecc * ) ssGetContStateDisabled ( S ) ) -> nfugx5ih43 ) ;
UNUSED_PARAMETER ( tid ) ; } static void mdlOutputsTID5 ( SimStruct * S ,
Ejemplo n.º 20
0
static void sf_c5_YCbCrTesting(SFc5_YCbCrTestingInstanceStruct *chartInstance)
{
  int32_T c5_cbits;
  uint32_T c5_in[20];
  real32_T c5_out[64];
  int32_T c5_b_cbits;
  real_T c5_inpos;
  uint32_T c5_Temp;
  uint32_T c5_run;
  uint32_T c5_val;
  uint32_T c5_b_Temp;
  real_T c5_i;
  boolean_T c5_exitg1;
  uint32_T c5_b_run;
  real_T c5_b_inpos;
  real_T c5_flag;
  uint32_T c5_b_val;
  int32_T c5_j;
  real32_T (*c5_b_out)[64];
  uint32_T (*c5_b_in)[20];
  c5_b_out = (real32_T (*)[64])ssGetOutputPortSignal(chartInstance->S, 1);
  c5_b_in = (uint32_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  for (c5_cbits = 0; c5_cbits < 20; c5_cbits++) {
    c5_in[c5_cbits] = (*c5_b_in)[c5_cbits];
  }

  chartInstance->c5_prev_out_not_empty = TRUE;
  for (c5_cbits = 0; c5_cbits < 64; c5_cbits++) {
    c5_out[c5_cbits] = chartInstance->c5_prev_out[c5_cbits];
  }

  c5_b_cbits = 0;
  c5_inpos = 2.0;
  c5_Temp = 0U;
  c5_run = 0U;
  c5_val = 0U;
  if (((*c5_b_in)[0] & 2147483648U) != 0U) {
    c5_b_Temp = MAX_uint32_T - (*c5_b_in)[0];
    if (c5_b_Temp > 2147483647U) {
      c5_b_Temp = 2147483647U;
    }

    c5_out[0] = (real32_T)(-(int32_T)c5_b_Temp - 1);
  } else {
    c5_b_Temp = (*c5_b_in)[0];
    if (c5_b_Temp > 2147483647U) {
      c5_b_Temp = 2147483647U;
    }

    c5_out[0] = (real32_T)c5_b_Temp;
  }

  c5_i = 2.0;
  c5_exitg1 = 0U;
  while ((c5_exitg1 == 0U) && (c5_i <= 64.0)) {
    c5_getbits(chartInstance, c5_b_cbits, c5_inpos, c5_Temp, c5_in, c5_run, 4.0,
               &c5_flag, &c5_cbits, &c5_b_inpos, &c5_b_Temp, &c5_b_run);
    c5_run = c5_b_run;
    if ((!(c5_flag != 0.0)) || (c5_b_run == 15U)) {
      c5_exitg1 = 1U;
    } else {
      c5_getbits(chartInstance, c5_cbits, c5_b_inpos, c5_b_Temp, c5_in, c5_val,
                 8.0, &c5_flag, &c5_b_cbits, &c5_inpos, &c5_Temp, &c5_b_val);
      c5_val = c5_b_val;
      if (!(c5_flag != 0.0)) {
        c5_exitg1 = 1U;
      } else {
        c5_flag = (real_T)c5_b_run + c5_i;
        c5_flag = muDoubleScalarFloor(c5_flag + 0.5);
        if (c5_flag < 4.294967296E+9) {
          c5_b_Temp = (uint32_T)c5_flag;
        } else {
          c5_b_Temp = MAX_uint32_T;
        }

        if (c5_b_Temp > 64U) {
          c5_cbits = 64;
        } else {
          c5_cbits = (int32_T)c5_b_Temp;
        }

        c5_j = (int32_T)c5_i;
        while ((uint32_T)c5_j <= (uint32_T)c5_cbits) {
          c5_out[c5_j - 1] = (real32_T)c5_b_val - 128.0F;
          c5_j = (int32_T)((uint32_T)c5_j + 1U);
          sf_mex_listen_for_ctrl_c(chartInstance->S);
        }

        c5_i = (c5_i + (real_T)c5_b_run) + 1.0;
        sf_mex_listen_for_ctrl_c(chartInstance->S);
      }
    }
  }

  while (c5_i <= 64.0) {
    c5_out[(int32_T)c5_i - 1] = 0.0F;
    c5_i++;
    sf_mex_listen_for_ctrl_c(chartInstance->S);
  }

  for (c5_cbits = 0; c5_cbits < 64; c5_cbits++) {
    chartInstance->c5_prev_out[c5_cbits] = c5_out[c5_cbits];
    (*c5_b_out)[c5_cbits] = c5_out[c5_cbits];
  }
}
Ejemplo n.º 21
0
/* Function Definitions */
static void initialize_c7_ekffede(SFc7_ekffedeInstanceStruct *chartInstance)
{
  chartInstance->c7_sfEvent = CALL_EVENT;
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  chartInstance->c7_is_active_c7_ekffede = 0U;
}
Ejemplo n.º 22
0
static void disable_c5_YCbCrTesting(SFc5_YCbCrTestingInstanceStruct
  *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 23
0
static void sf_c6_TTR_mdl(SFc6_TTR_mdlInstanceStruct *chartInstance)
{
  int32_T c6_i0;
  real_T c6_hoistedGlobal;
  real_T c6_u_ctrl;
  int32_T c6_i1;
  real_T c6_U_bounds[2];
  uint32_T c6_debug_family_var_map[6];
  real_T c6_i;
  real_T c6_nargin = 2.0;
  real_T c6_nargout = 1.0;
  real_T c6_u_ctrl_out;
  real_T c6_varargin_1;
  real_T c6_varargin_2;
  real_T c6_b_varargin_2;
  real_T c6_varargin_3;
  real_T c6_x;
  real_T c6_y;
  real_T c6_b_x;
  real_T c6_b_y;
  real_T c6_xk;
  real_T c6_yk;
  real_T c6_c_x;
  real_T c6_c_y;
  real_T c6_b_varargin_1;
  real_T c6_c_varargin_2;
  real_T c6_d_varargin_2;
  real_T c6_b_varargin_3;
  real_T c6_d_x;
  real_T c6_d_y;
  real_T c6_e_x;
  real_T c6_e_y;
  real_T c6_b_xk;
  real_T c6_b_yk;
  real_T c6_f_x;
  real_T c6_f_y;
  real_T *c6_b_u_ctrl;
  real_T *c6_b_u_ctrl_out;
  real_T (*c6_b_U_bounds)[2];
  c6_b_U_bounds = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 1);
  c6_b_u_ctrl_out = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c6_b_u_ctrl = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 5U, chartInstance->c6_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c6_b_u_ctrl, 0U);
  _SFD_DATA_RANGE_CHECK(*c6_b_u_ctrl_out, 1U);
  for (c6_i0 = 0; c6_i0 < 2; c6_i0++) {
    _SFD_DATA_RANGE_CHECK((*c6_b_U_bounds)[c6_i0], 2U);
  }

  chartInstance->c6_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 5U, chartInstance->c6_sfEvent);
  c6_hoistedGlobal = *c6_b_u_ctrl;
  c6_u_ctrl = c6_hoistedGlobal;
  for (c6_i1 = 0; c6_i1 < 2; c6_i1++) {
    c6_U_bounds[c6_i1] = (*c6_b_U_bounds)[c6_i1];
  }

  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 6U, 6U, c6_debug_family_names,
    c6_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c6_i, 0U, c6_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c6_nargin, 1U, c6_sf_marshallOut,
    c6_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c6_nargout, 2U, c6_sf_marshallOut,
    c6_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(&c6_u_ctrl, 3U, c6_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML(c6_U_bounds, 4U, c6_b_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c6_u_ctrl_out, 5U, c6_sf_marshallOut,
    c6_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, 9);
  c6_u_ctrl_out = c6_u_ctrl;
  _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, 11);
  CV_EML_IF(0, 1, 0, FALSE);
  _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, 17);
  c6_i = 1.0;
  CV_EML_FOR(0, 1, 0, 1);
  _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, 18);
  c6_varargin_1 = c6_u_ctrl;
  c6_varargin_2 = c6_U_bounds[0];
  c6_b_varargin_2 = c6_varargin_1;
  c6_varargin_3 = c6_varargin_2;
  c6_x = c6_b_varargin_2;
  c6_y = c6_varargin_3;
  c6_b_x = c6_x;
  c6_b_y = c6_y;
  c6_eml_scalar_eg(chartInstance);
  c6_xk = c6_b_x;
  c6_yk = c6_b_y;
  c6_c_x = c6_xk;
  c6_c_y = c6_yk;
  c6_eml_scalar_eg(chartInstance);
  c6_u_ctrl_out = muDoubleScalarMax(c6_c_x, c6_c_y);
  _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, 19);
  c6_b_varargin_1 = c6_u_ctrl;
  c6_c_varargin_2 = c6_U_bounds[1];
  c6_d_varargin_2 = c6_b_varargin_1;
  c6_b_varargin_3 = c6_c_varargin_2;
  c6_d_x = c6_d_varargin_2;
  c6_d_y = c6_b_varargin_3;
  c6_e_x = c6_d_x;
  c6_e_y = c6_d_y;
  c6_eml_scalar_eg(chartInstance);
  c6_b_xk = c6_e_x;
  c6_b_yk = c6_e_y;
  c6_f_x = c6_b_xk;
  c6_f_y = c6_b_yk;
  c6_eml_scalar_eg(chartInstance);
  c6_u_ctrl_out = muDoubleScalarMin(c6_f_x, c6_f_y);
  CV_EML_FOR(0, 1, 0, 0);
  _SFD_EML_CALL(0U, chartInstance->c6_sfEvent, -19);
  _SFD_SYMBOL_SCOPE_POP();
  *c6_b_u_ctrl_out = c6_u_ctrl_out;
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 5U, chartInstance->c6_sfEvent);
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_TTR_mdlMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}
Ejemplo n.º 24
0
static void sf_c3_MPC_framework(void)
{
  uint8_T c3_previousEvent;
  real_T c3_b_a0;
  real_T c3_b_a1;
  real_T c3_b_a2;
  real_T c3_b_a3;
  real_T c3_b_a4;
  real_T c3_b_a5;
  real_T c3_b_t_sim;
  real_T c3_b_t_end;
  real_T c3_Q[3];
  real_T c3_T[6][3];
  real_T c3_b_qapp;
  real_T c3_b_qap;
  real_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;
  real_T c3_c_a0[6];
  int32_T c3_em_i3;
  int32_T c3_em_i4;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  _SFD_DATA_RANGE_CHECK(*c3_a0(), 7U);
  _SFD_DATA_RANGE_CHECK(*c3_a1(), 6U);
  _SFD_DATA_RANGE_CHECK(*c3_a2(), 2U);
  _SFD_DATA_RANGE_CHECK(*c3_a3(), 10U);
  _SFD_DATA_RANGE_CHECK(*c3_a4(), 8U);
  _SFD_DATA_RANGE_CHECK(*c3_a5(), 1U);
  _SFD_DATA_RANGE_CHECK(*c3_t_sim(), 4U);
  _SFD_DATA_RANGE_CHECK(*c3_qa(), 9U);
  _SFD_DATA_RANGE_CHECK(*c3_qap(), 3U);
  _SFD_DATA_RANGE_CHECK(*c3_qapp(), 0U);
  _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", 0, 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", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U,
   0, 0U, 0, &c3_b_qapp, 0);
  sf_debug_symbol_scope_add_symbol("qap", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_qap, 0);
  sf_debug_symbol_scope_add_symbol("qa", 0, 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", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a5, 0);
  sf_debug_symbol_scope_add_symbol("a4", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a4, 0);
  sf_debug_symbol_scope_add_symbol("a3", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a3, 0);
  sf_debug_symbol_scope_add_symbol("a2", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a2, 0);
  sf_debug_symbol_scope_add_symbol("a1", 0, 0U, 0U, 0U, 0U, 1.0, 0, 0.0, 0U, 0,
   0U, 0, &c3_b_a1, 0);
  sf_debug_symbol_scope_add_symbol("a0", 0, 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);
  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_i3 = 0; c3_em_i3 < 3; c3_em_i3 = c3_em_i3 + 1) {
    c3_Q[c3_em_i3] = 0.0;
    for(c3_em_i4 = 0; c3_em_i4 < 6; c3_em_i4 = c3_em_i4 + 1) {
      c3_Q[c3_em_i3] = c3_Q[c3_em_i3] + c3_T[c3_em_i4][c3_em_i3] *
        c3_c_a0[c3_em_i4];
    }
  }
  _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);
}
Ejemplo n.º 25
0
static void disable_c6_TTR_mdl(SFc6_TTR_mdlInstanceStruct *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 26
0
/* Function Definitions */
static void initialize_c2_object_tracker_intensity(void)
{
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  chartInstance.c2_LastCentroid_not_empty = false;
  chartInstance.c2_is_active_c2_object_tracker_intensity = 0U;
}
Ejemplo n.º 27
0
/* Function Definitions */
static void initialize_c3_controller1(SFc3_controller1InstanceStruct
  *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  chartInstance->c3_is_active_c3_controller1 = 0U;
}
Ejemplo n.º 28
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);
}
Ejemplo n.º 29
0
static void enable_c16_Final_Project_v3b(SFc16_Final_Project_v3bInstanceStruct
  *chartInstance)
{
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
}
Ejemplo n.º 30
0
/* Function: main ==============================================================
 *
 *      Execute model on a generic target such as a workstation.
 */
int_T main(int_T argc, char_T *argv[])
{
    SimStruct  *S                 = NULL;
    boolean_T  calledMdlStart     = FALSE;
    boolean_T  dataLoggingActive  = FALSE;
    boolean_T  initializedExtMode = FALSE;
    const char *result;
    const char *program;
    time_t     now;
    int matFileFormat;
    const char *errorPrefix       = NULL;
    void *parforSchedulerInit     = NULL;

    program = argv[0];
    gblInstalledSigHandlers = FALSE;
    /* No re-defining of data types allowed. */
    if ((sizeof(real_T)   != 8) ||
        (sizeof(real32_T) != 4) ||
        (sizeof(int8_T)   != 1) ||
        (sizeof(uint8_T)  != 1) ||
        (sizeof(int16_T)  != 2) ||
        (sizeof(uint16_T) != 2) ||
        (sizeof(int32_T)  != 4) ||
        (sizeof(uint32_T) != 4) ||
        (sizeof(boolean_T)!= 1)) {
        ERROR_EXIT("Error: %s\n", "Re-defining data types such as REAL_T is not supported by RSIM");
    }

    rt_InitInfAndNaN(sizeof(real_T));


    /* Parse arguments */
    gblErrorStatus = ParseArgs(argc, argv);
    ERROR_EXIT("Error parsing input arguments: %s\n", gblErrorStatus);

    /* Initialize the model */
    S = raccel_register_model();
    ERROR_EXIT("Error during model registration: %s\n", ssGetErrorStatus(S));

    ssClearFirstInitCondCalled(S);
    /* Override StopTime */
    if (gblFinalTimeChanged) ssSetTFinal(S,gblFinalTime);

    MdlInitializeSizes();
    MdlInitializeSampleTimes();

    /* We don't have GOTO_EXIT_IF_ERROR here as engine is not initialized 
       via rsimInitializeEngine */
    rt_RapidReadMatFileAndUpdateParams(S);
    ERROR_EXIT("Error reading parameter data from mat-file: %s\n",
              ssGetErrorStatus(S));

    /* load solver options */
    rsimLoadSolverOpts(S);
    ERROR_EXIT("Error loading solver options: %s\n", ssGetErrorStatus(S));

# if defined(DEBUG_SOLVER)
    rsimEnableDebugOutput(sizeof(struct SimStruct_tag),
                          sizeof(struct _ssMdlInfo));
# endif

#ifdef RACCEL_PARALLEL_FOREACH
    parforSchedulerInit = rt_ParallelForEachInitScheduler(S, RACCEL_PARFOREACH_NUM_THREADS, RACCEL_NUM_PARFOREACH_SS);
#endif

    rsimInitializeEngine(S);
    ERROR_EXIT("Error initializing RSIM engine: %s\n", ssGetErrorStatus(S));

    /* initialize external model */
    if (gblExtModeEnabled) {
        rtExtModeCheckInit(ssGetNumSampleTimes(S));
        initializedExtMode = TRUE;       
    }

    raccel_setup_MMIStateLog(S);

    if (ssIsVariableStepSolver(S)) {
        (void)rt_StartDataLoggingWithStartTime(ssGetRTWLogInfo(S),
                                               ssGetTStart(S),
                                               ssGetTFinal(S),
                                               0.0,
                                               &ssGetErrorStatus(S));
    } else {
        (void)rt_StartDataLoggingWithStartTime(ssGetRTWLogInfo(S),
                                               ssGetTStart(S),
                                               ssGetTFinal(S),
                                               ssGetStepSize(S),
                                               &ssGetErrorStatus(S));
    }
    GOTO_EXIT_IF_ERROR("Error starting data logging: %s\n", 
                       ssGetErrorStatus(S));
    dataLoggingActive = TRUE;

    if (gblExtModeEnabled) {
        /* If -w flag is specified wait here for connect signal from host */
        rtExtModeWaitForStartPkt(ssGetRTWExtModeInfo(S),
                                 ssGetNumSampleTimes(S),
                                 (boolean_T *)&ssGetStopRequested(S));
        if (ssGetStopRequested(S)) goto EXIT_POINT;
    }

    /* Start the model */
    now = time(NULL);
    if(gblVerboseFlag) {
        (void)printf("\n** Starting model @ %s", ctime(&now));
        }

    /* Enable logging in the MdlStart method */
    ssSetLogOutput(S,TRUE);

    /* Enable -i option to load inport data file */
    result = rt_RapidReadInportsMatFile(gblInportFileName, &matFileFormat);
    if (result!= NULL) {
        ssSetErrorStatus(S,result);
        GOTO_EXIT_IF_ERROR("Error starting model: %s\n",  ssGetErrorStatus(S));
    }

    MdlStart();
    ssSetLogOutput(S,FALSE);

    calledMdlStart = TRUE;
    GOTO_EXIT_IF_ERROR("Error starting model: %s\n", ssGetErrorStatus(S));

    result = rt_RapidCheckRemappings();
    ssSetErrorStatus(S,result);
    GOTO_EXIT_IF_ERROR("Error: %s\n", ssGetErrorStatus(S));

    /* Create solver data */
    rsimCreateSolverData(S, gblSlvrJacPatternFileName);
    GOTO_EXIT_IF_ERROR("Error creating solver data: %s\n", ssGetErrorStatus(S));

    ssSetFirstInitCondCalled(S);

    /*********************
     * Execute the model *
     *********************/

    /* Install Signal and Run time limit handlers */
    
    rsimInstallAllHandlers(S,WriteResultsToMatFile,gblTimeLimit);
    

    gblInstalledSigHandlers = TRUE;
    GOTO_EXIT_IF_ERROR("Error: %s\n", ssGetErrorStatus(S));

    while ( ((ssGetTFinal(S)-ssGetT(S)) > (fabs(ssGetT(S))*DBL_EPSILON)) ) {

        if (gblExtModeEnabled) {
            rtExtModePauseIfNeeded(ssGetRTWExtModeInfo(S),
                                   ssGetNumSampleTimes(S),
                                   (boolean_T *)&ssGetStopRequested(S));
        }
        if (ssGetStopRequested(S)) break;

        if (gbl_raccel_isMultitasking) {
            rsimOneStepMT(S);
        } else {
            rsimOneStepST(S);
        }
        if (ssGetErrorStatus(S)) break;
    }
    if (ssGetErrorStatus(S) == NULL && !ssGetStopRequested(S)) {
        /* Do a major step at the final time */
        if (gbl_raccel_isMultitasking) {
            rsimOneStepMT(S);
        } else { 
            rsimOutputLogUpdate(S);
        }
    }

  EXIT_POINT:
    /********************
     * Cleanup and exit *
     ********************/
    if (ssGetErrorStatus(S) != NULL) {
        if (errorPrefix) {
            (void)fprintf(stderr, errorPrefix, ssGetErrorStatus(S));
        } else {
            (void)fprintf(stderr, "Error: %s\n", ssGetErrorStatus(S));
        }
    }
    if (gblInstalledSigHandlers) {
        rsimUninstallNonfatalHandlers();
        gblInstalledSigHandlers = FALSE;
    }
    if (dataLoggingActive){
        WriteResultsToMatFile(S);
    }

    
    rsimTerminateEngine(S,0);
    
        
    if (initializedExtMode) {
        rtExtModeShutdown(ssGetNumSampleTimes(S));
    }
    if (calledMdlStart) {
        MdlTerminate();
    }

#ifdef RACCEL_PARALLEL_FOREACH
    rt_ParallelForEachClearScheduler(parforSchedulerInit);
#endif

    rt_RapidFreeGbls(matFileFormat);
    return ssGetErrorStatus(S) ? EXIT_FAILURE : EXIT_SUCCESS;

} /* end main */