static void c10_sf_marshallIn(void *chartInstanceVoid, const mxArray
  *c10_mxArrayInData, const char_T *c10_varName, void *c10_outData)
{
  const mxArray *c10_R;
  const char_T *c10_identifier;
  emlrtMsgIdentifier c10_thisId;
  real_T c10_y[9];
  int32_T c10_i15;
  int32_T c10_i16;
  int32_T c10_i17;
  SFc10_HIL_model_overallInstanceStruct *chartInstance;
  chartInstance = (SFc10_HIL_model_overallInstanceStruct *)chartInstanceVoid;
  c10_R = sf_mex_dup(c10_mxArrayInData);
  c10_identifier = c10_varName;
  c10_thisId.fIdentifier = c10_identifier;
  c10_thisId.fParent = NULL;
  c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c10_R), &c10_thisId, c10_y);
  sf_mex_destroy(&c10_R);
  c10_i15 = 0;
  for (c10_i16 = 0; c10_i16 < 3; c10_i16++) {
    for (c10_i17 = 0; c10_i17 < 3; c10_i17++) {
      (*(real_T (*)[9])c10_outData)[c10_i17 + c10_i15] = c10_y[c10_i17 + c10_i15];
    }

    c10_i15 += 3;
  }

  sf_mex_destroy(&c10_mxArrayInData);
}
static void c10_emlrt_marshallIn(SFc10_experiment_lib2InstanceStruct
  *chartInstance, const mxArray *c10_out, const char_T *c10_identifier, real_T
  c10_y[4])
{
  emlrtMsgIdentifier c10_thisId;
  c10_thisId.fIdentifier = c10_identifier;
  c10_thisId.fParent = NULL;
  c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c10_out), &c10_thisId, c10_y);
  sf_mex_destroy(&c10_out);
}
static void c10_emlrt_marshallIn(SFc10_HIL_model_overallInstanceStruct
  *chartInstance, const mxArray *c10_R, const char_T *c10_identifier, real_T
  c10_y[9])
{
  emlrtMsgIdentifier c10_thisId;
  c10_thisId.fIdentifier = c10_identifier;
  c10_thisId.fParent = NULL;
  c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c10_R), &c10_thisId, c10_y);
  sf_mex_destroy(&c10_R);
}
예제 #4
0
static real_T c10_emlrt_marshallIn(SFc10_hybridSysSimInstanceStruct
  *chartInstance, const mxArray *c10_b_tk, const char_T *c10_identifier)
{
  real_T c10_y;
  emlrtMsgIdentifier c10_thisId;
  c10_thisId.fIdentifier = c10_identifier;
  c10_thisId.fParent = NULL;
  c10_y = c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c10_b_tk),
    &c10_thisId);
  sf_mex_destroy(&c10_b_tk);
  return c10_y;
}
예제 #5
0
static void c10_sf_marshallIn(void *chartInstanceVoid, const mxArray
  *c10_mxArrayInData, const char_T *c10_varName, void *c10_outData)
{
  const mxArray *c10_b_tk;
  const char_T *c10_identifier;
  emlrtMsgIdentifier c10_thisId;
  real_T c10_y;
  SFc10_hybridSysSimInstanceStruct *chartInstance;
  chartInstance = (SFc10_hybridSysSimInstanceStruct *)chartInstanceVoid;
  c10_b_tk = sf_mex_dup(c10_mxArrayInData);
  c10_identifier = c10_varName;
  c10_thisId.fIdentifier = c10_identifier;
  c10_thisId.fParent = NULL;
  c10_y = c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c10_b_tk),
    &c10_thisId);
  sf_mex_destroy(&c10_b_tk);
  *(real_T *)c10_outData = c10_y;
  sf_mex_destroy(&c10_mxArrayInData);
}
static void c10_sf_marshallIn(void *chartInstanceVoid, const mxArray
  *c10_mxArrayInData, const char_T *c10_varName, void *c10_outData)
{
  const mxArray *c10_out;
  const char_T *c10_identifier;
  emlrtMsgIdentifier c10_thisId;
  real_T c10_y[4];
  int32_T c10_i10;
  SFc10_experiment_lib2InstanceStruct *chartInstance;
  chartInstance = (SFc10_experiment_lib2InstanceStruct *)chartInstanceVoid;
  c10_out = sf_mex_dup(c10_mxArrayInData);
  c10_identifier = c10_varName;
  c10_thisId.fIdentifier = c10_identifier;
  c10_thisId.fParent = NULL;
  c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c10_out), &c10_thisId, c10_y);
  sf_mex_destroy(&c10_out);
  for (c10_i10 = 0; c10_i10 < 4; c10_i10++) {
    (*(real_T (*)[4])c10_outData)[c10_i10] = c10_y[c10_i10];
  }

  sf_mex_destroy(&c10_mxArrayInData);
}
static void set_sim_state_c10_dynamics_kinematics
  (SFc10_dynamics_kinematicsInstanceStruct *chartInstance, const mxArray *c10_st)
{
  const mxArray *c10_u;
  real_T c10_dv0[144];
  int32_T c10_i1;
  real_T (*c10_M)[144];
  c10_M = (real_T (*)[144])ssGetOutputPortSignal(chartInstance->S, 1);
  chartInstance->c10_doneDoubleBufferReInit = TRUE;
  c10_u = sf_mex_dup(c10_st);
  c10_b_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c10_u, 0)),
    "M", c10_dv0);
  for (c10_i1 = 0; c10_i1 < 144; c10_i1++) {
    (*c10_M)[c10_i1] = c10_dv0[c10_i1];
  }

  chartInstance->c10_is_active_c10_dynamics_kinematics = c10_e_emlrt_marshallIn
    (chartInstance, sf_mex_dup(sf_mex_getcell(c10_u, 1)),
     "is_active_c10_dynamics_kinematics");
  sf_mex_destroy(&c10_u);
  c10_update_debugger_state_c10_dynamics_kinematics(chartInstance);
  sf_mex_destroy(&c10_st);
}
static void sf_c10_dynamics_kinematics(SFc10_dynamics_kinematicsInstanceStruct
  *chartInstance)
{
  int32_T c10_i2;
  int32_T c10_i3;
  int32_T c10_i4;
  real_T c10_q[6];
  uint32_T c10_debug_family_var_map[4];
  real_T c10_nargin = 1.0;
  real_T c10_nargout = 1.0;
  real_T c10_M[144];
  int32_T c10_i5;
  int32_T c10_i6;
  real_T c10_u[6];
  const mxArray *c10_y = NULL;
  real_T c10_dv1[144];
  int32_T c10_i7;
  int32_T c10_i8;
  real_T (*c10_b_M)[144];
  real_T (*c10_b_q)[6];
  c10_b_q = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 0);
  c10_b_M = (real_T (*)[144])ssGetOutputPortSignal(chartInstance->S, 1);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 9U, chartInstance->c10_sfEvent);
  for (c10_i2 = 0; c10_i2 < 144; c10_i2++) {
    _SFD_DATA_RANGE_CHECK((*c10_b_M)[c10_i2], 0U);
  }

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

  chartInstance->c10_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 9U, chartInstance->c10_sfEvent);
  for (c10_i4 = 0; c10_i4 < 6; c10_i4++) {
    c10_q[c10_i4] = (*c10_b_q)[c10_i4];
  }

  sf_debug_symbol_scope_push_eml(0U, 4U, 4U, c10_debug_family_names,
    c10_debug_family_var_map);
  sf_debug_symbol_scope_add_eml_importable(&c10_nargin, 0U, c10_c_sf_marshallOut,
    c10_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml_importable(&c10_nargout, 1U,
    c10_c_sf_marshallOut, c10_b_sf_marshallIn);
  sf_debug_symbol_scope_add_eml(c10_q, 2U, c10_b_sf_marshallOut);
  sf_debug_symbol_scope_add_eml_importable(c10_M, 3U, c10_sf_marshallOut,
    c10_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c10_sfEvent, 3);
  _SFD_EML_CALL(0U, chartInstance->c10_sfEvent, 4);
  for (c10_i5 = 0; c10_i5 < 144; c10_i5++) {
    c10_M[c10_i5] = 0.0;
  }

  _SFD_EML_CALL(0U, chartInstance->c10_sfEvent, 5);
  for (c10_i6 = 0; c10_i6 < 6; c10_i6++) {
    c10_u[c10_i6] = c10_q[c10_i6];
  }

  c10_y = NULL;
  sf_mex_assign(&c10_y, sf_mex_create("y", c10_u, 0, 0U, 1U, 0U, 1, 6), FALSE);
  c10_b_emlrt_marshallIn(chartInstance, sf_mex_call_debug("getInertia", 1U, 1U,
    14, c10_y), "getInertia", c10_dv1);
  for (c10_i7 = 0; c10_i7 < 144; c10_i7++) {
    c10_M[c10_i7] = c10_dv1[c10_i7];
  }

  _SFD_EML_CALL(0U, chartInstance->c10_sfEvent, -5);
  sf_debug_symbol_scope_pop();
  for (c10_i8 = 0; c10_i8 < 144; c10_i8++) {
    (*c10_b_M)[c10_i8] = c10_M[c10_i8];
  }

  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 9U, chartInstance->c10_sfEvent);
  sf_debug_check_for_state_inconsistency(_dynamics_kinematicsMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}