static void c11_emlrt_marshallIn(SFc11_Batman_CodeInstanceStruct *chartInstance,
  const mxArray *c11_cell_temperatures_out, const char_T *c11_identifier,
  uint16_T c11_y[12])
{
  emlrtMsgIdentifier c11_thisId;
  c11_thisId.fIdentifier = c11_identifier;
  c11_thisId.fParent = NULL;
  c11_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c11_cell_temperatures_out),
    &c11_thisId, c11_y);
  sf_mex_destroy(&c11_cell_temperatures_out);
}
static void c11_sf_marshallIn(void *chartInstanceVoid, const mxArray
  *c11_mxArrayInData, const char_T *c11_varName, void *c11_outData)
{
  const mxArray *c11_cell_temperatures_out;
  const char_T *c11_identifier;
  emlrtMsgIdentifier c11_thisId;
  uint16_T c11_y[12];
  int32_T c11_i12;
  SFc11_Batman_CodeInstanceStruct *chartInstance;
  chartInstance = (SFc11_Batman_CodeInstanceStruct *)chartInstanceVoid;
  c11_cell_temperatures_out = sf_mex_dup(c11_mxArrayInData);
  c11_identifier = c11_varName;
  c11_thisId.fIdentifier = c11_identifier;
  c11_thisId.fParent = NULL;
  c11_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c11_cell_temperatures_out),
    &c11_thisId, c11_y);
  sf_mex_destroy(&c11_cell_temperatures_out);
  for (c11_i12 = 0; c11_i12 < 12; c11_i12++) {
    (*(uint16_T (*)[12])c11_outData)[c11_i12] = c11_y[c11_i12];
  }

  sf_mex_destroy(&c11_mxArrayInData);
}
Esempio n. 3
0
static void set_sim_state_c11_kinematics(SFc11_kinematicsInstanceStruct
  *chartInstance, const mxArray *c11_st)
{
  const mxArray *c11_u;
  real_T c11_dv0[6];
  int32_T c11_i1;
  real_T (*c11_vehicle_rates)[6];
  c11_vehicle_rates = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 1);
  chartInstance->c11_doneDoubleBufferReInit = TRUE;
  c11_u = sf_mex_dup(c11_st);
  c11_b_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c11_u, 0)),
    "vehicle_rates", c11_dv0);
  for (c11_i1 = 0; c11_i1 < 6; c11_i1++) {
    (*c11_vehicle_rates)[c11_i1] = c11_dv0[c11_i1];
  }

  chartInstance->c11_is_active_c11_kinematics = c11_e_emlrt_marshallIn
    (chartInstance, sf_mex_dup(sf_mex_getcell(c11_u, 1)),
     "is_active_c11_kinematics");
  sf_mex_destroy(&c11_u);
  c11_update_debugger_state_c11_kinematics(chartInstance);
  sf_mex_destroy(&c11_st);
}
Esempio n. 4
0
static void sf_c11_kinematics(SFc11_kinematicsInstanceStruct *chartInstance)
{
  int32_T c11_i2;
  int32_T c11_i3;
  int32_T c11_i4;
  int32_T c11_i5;
  real_T c11_body_velocity[6];
  int32_T c11_i6;
  real_T c11_euler_angles_vehicle[3];
  uint32_T c11_debug_family_var_map[6];
  const mxArray *c11_J = NULL;
  real_T c11_nargin = 2.0;
  real_T c11_nargout = 1.0;
  real_T c11_vehicle_rates[6];
  int32_T c11_i7;
  real_T c11_u[3];
  const mxArray *c11_y = NULL;
  int32_T c11_i8;
  int32_T c11_i9;
  real_T c11_b_u[6];
  const mxArray *c11_b_y = NULL;
  real_T c11_dv1[6];
  int32_T c11_i10;
  int32_T c11_i11;
  real_T (*c11_b_vehicle_rates)[6];
  real_T (*c11_b_euler_angles_vehicle)[3];
  real_T (*c11_b_body_velocity)[6];
  c11_b_euler_angles_vehicle = (real_T (*)[3])ssGetInputPortSignal
    (chartInstance->S, 1);
  c11_b_vehicle_rates = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 1);
  c11_b_body_velocity = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 8U, chartInstance->c11_sfEvent);
  for (c11_i2 = 0; c11_i2 < 6; c11_i2++) {
    _SFD_DATA_RANGE_CHECK((*c11_b_body_velocity)[c11_i2], 0U);
  }

  for (c11_i3 = 0; c11_i3 < 6; c11_i3++) {
    _SFD_DATA_RANGE_CHECK((*c11_b_vehicle_rates)[c11_i3], 1U);
  }

  for (c11_i4 = 0; c11_i4 < 3; c11_i4++) {
    _SFD_DATA_RANGE_CHECK((*c11_b_euler_angles_vehicle)[c11_i4], 2U);
  }

  chartInstance->c11_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 8U, chartInstance->c11_sfEvent);
  for (c11_i5 = 0; c11_i5 < 6; c11_i5++) {
    c11_body_velocity[c11_i5] = (*c11_b_body_velocity)[c11_i5];
  }

  for (c11_i6 = 0; c11_i6 < 3; c11_i6++) {
    c11_euler_angles_vehicle[c11_i6] = (*c11_b_euler_angles_vehicle)[c11_i6];
  }

  sf_debug_symbol_scope_push_eml(0U, 6U, 6U, c11_debug_family_names,
    c11_debug_family_var_map);
  sf_debug_symbol_scope_add_eml(&c11_J, 0U, c11_d_sf_marshallOut);
  sf_debug_symbol_scope_add_eml_importable(&c11_nargin, 1U, c11_c_sf_marshallOut,
    c11_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c11_nargout, 2U,
    c11_c_sf_marshallOut, c11_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml(c11_body_velocity, 3U, c11_sf_marshallOut);
  sf_debug_symbol_scope_add_eml(c11_euler_angles_vehicle, 4U,
    c11_b_sf_marshallOut);
  sf_debug_symbol_scope_add_eml_importable(c11_vehicle_rates, 5U,
    c11_sf_marshallOut, c11_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c11_sfEvent, 3);
  _SFD_EML_CALL(0U, chartInstance->c11_sfEvent, 4);
  for (c11_i7 = 0; c11_i7 < 3; c11_i7++) {
    c11_u[c11_i7] = c11_euler_angles_vehicle[c11_i7];
  }

  c11_y = NULL;
  sf_mex_assign(&c11_y, sf_mex_create("y", c11_u, 0, 0U, 1U, 0U, 1, 3), FALSE);
  sf_mex_assign(&c11_J, sf_mex_call_debug("analytical_jacobian", 1U, 1U, 14,
    c11_y), FALSE);
  _SFD_EML_CALL(0U, chartInstance->c11_sfEvent, 6);
  for (c11_i8 = 0; c11_i8 < 6; c11_i8++) {
    c11_vehicle_rates[c11_i8] = 0.0;
  }

  _SFD_EML_CALL(0U, chartInstance->c11_sfEvent, 7);
  for (c11_i9 = 0; c11_i9 < 6; c11_i9++) {
    c11_b_u[c11_i9] = c11_body_velocity[c11_i9];
  }

  c11_b_y = NULL;
  sf_mex_assign(&c11_b_y, sf_mex_create("y", c11_b_u, 0, 0U, 1U, 0U, 1, 6),
                FALSE);
  c11_b_emlrt_marshallIn(chartInstance, sf_mex_call_debug("mtimes", 1U, 2U, 14,
    sf_mex_dup(c11_J), 14, c11_b_y), "mtimes", c11_dv1);
  for (c11_i10 = 0; c11_i10 < 6; c11_i10++) {
    c11_vehicle_rates[c11_i10] = c11_dv1[c11_i10];
  }

  _SFD_EML_CALL(0U, chartInstance->c11_sfEvent, -7);
  sf_debug_symbol_scope_pop();
  sf_mex_destroy(&c11_J);
  for (c11_i11 = 0; c11_i11 < 6; c11_i11++) {
    (*c11_b_vehicle_rates)[c11_i11] = c11_vehicle_rates[c11_i11];
  }

  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 8U, chartInstance->c11_sfEvent);
  sf_debug_check_for_state_inconsistency(_kinematicsMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}