Пример #1
0
static void c35_sendSBM(SFc35_Expriment_PoseInstanceStruct *chartInstance,
  real_T c35_In2[1000])
{
  int32_T c35_i14;
  int32_T c35_i15;
  int32_T c35_i16;
  real_T (*c35_b_In2)[1000];
  c35_b_In2 = (real_T (*)[1000])ssGetOutputPortSignal(chartInstance->S, 1);
  for (c35_i14 = 0; c35_i14 < 1000; c35_i14++) {
    _SFD_DATA_RANGE_CHECK(c35_In2[c35_i14], 0U);
  }

  _SFD_SET_DATA_VALUE_PTR(0U, c35_In2);
  _SFD_CS_CALL(FUNCTION_ACTIVE_TAG, 0U, chartInstance->c35_sfEvent);
  _SFD_SYMBOL_SCOPE_PUSH(1U, 0U);
  _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE("In2", c35_In2, c35_g_sf_marshallOut,
    c35_e_sf_marshallIn);
  _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c35_sfEvent);
  for (c35_i15 = 0; c35_i15 < 1000; c35_i15++) {
    (*c35_b_In2)[c35_i15] = c35_In2[c35_i15];
  }

  for (c35_i16 = 0; c35_i16 < 1000; c35_i16++) {
    _SFD_DATA_RANGE_CHECK((*c35_b_In2)[c35_i16], 0U);
  }

  sf_call_output_fcn_call(chartInstance->S, 0, "sendSBM", 0);
  _SFD_SYMBOL_SCOPE_POP();
  _SFD_CS_CALL(FUNCTION_INACTIVE_TAG, 0U, chartInstance->c35_sfEvent);
  _SFD_UNSET_DATA_VALUE_PTR(0U);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c35_sfEvent);
}
Пример #2
0
static void sf_gateway_c2_mdl5(SFc2_mdl5InstanceStruct *chartInstance)
{
  boolean_T c2_out;
  real_T *c2_N_Loop;
  real_T *c2_idx;
  int32_T exitg1;
  c2_idx = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
  c2_N_Loop = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
  c2_set_sim_state_side_effects_c2_mdl5(chartInstance);
  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);
  _sfTime_ = sf_get_time(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_DATA_RANGE_CHECK(*c2_N_Loop, 0U);
  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c2_i1, 1U);
  _SFD_DATA_RANGE_CHECK(*c2_idx, 2U);
  chartInstance->c2_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 0U, chartInstance->c2_sfEvent);
  *c2_idx = 1.0;
  _SFD_DATA_RANGE_CHECK(*c2_idx, 2U);
  chartInstance->c2_i1 = 0;
  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c2_i1, 1U);
  do {
    exitg1 = 0;
    _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 1U, chartInstance->c2_sfEvent);
    _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG, 2U, chartInstance->c2_sfEvent);
    c2_out = (CV_TRANSITION_EVAL(2U, (int32_T)_SFD_CCP_CALL(2U, 0, (real_T)
                chartInstance->c2_i1 < *c2_N_Loop != 0U,
                chartInstance->c2_sfEvent)) != 0);
    if (c2_out) {
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 2U, chartInstance->c2_sfEvent);
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 3U, chartInstance->c2_sfEvent);
      sf_call_output_fcn_call(chartInstance->S, 0, "function_call", 0);
      (*c2_idx)++;
      _SFD_DATA_RANGE_CHECK(*c2_idx, 2U);
      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 5U, chartInstance->c2_sfEvent);
      chartInstance->c2_i1 = c2__s32_add__(chartInstance, chartInstance->c2_i1,
        1);
      _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c2_i1, 1U);
      _SF_MEX_LISTEN_FOR_CTRL_C(chartInstance->S);
    } else {
      exitg1 = 1;
    }
  } while (exitg1 == 0);

  _SFD_CT_CALL(TRANSITION_ACTIVE_TAG, 4U, chartInstance->c2_sfEvent);
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c2_sfEvent);
  _SFD_SYMBOL_SCOPE_POP();
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mdl5MachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}