📄 c5_lmdap_library_ncs.c
字号:
/* Include files */
#include "LMdap_Library_NCS_sfun.h"
#include "c5_LMdap_Library_NCS.h"
#define CHARTINSTANCE_CHARTNUMBER (chartInstance->chartNumber)
#define CHARTINSTANCE_INSTANCENUMBER (chartInstance->instanceNumber)
#include "LMdap_Library_NCS_sfun_debug_macros.h"
/* Type Definitions */
/* Named Constants */
#define c5_IN_NO_ACTIVE_CHILD (0)
#define c5_IN_Wait_for_stable_rate (8)
#define c5_IN_Start (7)
#define c5_IN_Fire_region_1 (3)
#define c5_IN_Coast_region_2 (2)
#define c5_IN_Skip_a_Sample_2 (6)
#define c5_IN_Skip_a_Sample_1 (5)
#define c5_IN_Coast_region_1 (1)
#define c5_IN_Fire_region_2 (4)
/* Variable Declarations */
/* Variable Definitions */
/* Function Declarations */
static void initialize_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void
initialize_params_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void enable_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void disable_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void finalize_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void sf_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void
c5_chartstep_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void c5_Fire_region_1(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void c5_Coast_region_2(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void c5_Coast_region_1(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void c5_Fire_region_2(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void init_script_number_translation(uint32_T c5_machineNumber, uint32_T
c5_chartNumber);
static void init_test_point_addr_map(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void **get_test_point_address_map(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static rtwCAPI_ModelMappingInfo
*get_test_point_mapping_info(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
static void init_dsm_address_info(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance);
/* Function Definitions */
static void initialize_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
real_T *c5_jets;
real_T *c5_enable;
real_T *c5_ton;
c5_jets = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
c5_enable = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);
c5_ton = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);
_sfTime_ = (real_T)ssGetT(chartInstance->S);
chartInstance->c5_tp_Coast_region_1 = 0U;
chartInstance->c5_tp_Coast_region_2 = 0U;
chartInstance->c5_tp_Fire_region_1 = 0U;
chartInstance->c5_tp_Fire_region_2 = 0U;
chartInstance->c5_tp_Skip_a_Sample_1 = 0U;
chartInstance->c5_tp_Skip_a_Sample_2 = 0U;
chartInstance->c5_tp_Start = 0U;
chartInstance->c5_tp_Wait_for_stable_rate = 0U;
chartInstance->c5_is_active_c5_LMdap_Library_NCS = 0U;
chartInstance->c5_is_c5_LMdap_Library_NCS = 0U;
chartInstance->c5_count = 0.0;
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance->S, 1) != 0)) {
*c5_jets = 0.0;
}
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance->S, 2) != 0)) {
*c5_enable = 0.0;
}
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance->S, 3) != 0)) {
*c5_ton = 0.0;
}
}
static void
initialize_params_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
real_T c5_d0;
real_T c5_d1;
sf_set_error_prefix_string("Stateflow Runtime Error (chart): Error evaluating data 'tmin' in the parent workspace.\n");
sf_mex_import(sf_mex_get_sfun_param(chartInstance->S, 1, 0),
"sf_mex_get_sfun_param", &c5_d0, 0, 0, 0U, 0, 0);
chartInstance->c5_tmin = c5_d0;
sf_set_error_prefix_string("Stateflow Runtime Error (chart): ");
sf_set_error_prefix_string("Stateflow Runtime Error (chart): Error evaluating data 'delt' in the parent workspace.\n");
sf_mex_import(sf_mex_get_sfun_param(chartInstance->S, 0, 0),
"sf_mex_get_sfun_param", &c5_d1, 0, 0, 0U, 0, 0);
chartInstance->c5_delt = c5_d1;
sf_set_error_prefix_string("Stateflow Runtime Error (chart): ");
}
static void enable_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
}
static void disable_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
}
static void finalize_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
}
static void sf_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
int32_T c5_i0;
uint8_T c5_previousEvent;
real_T *c5_Nofjets;
real_T *c5_jets;
real_T *c5_enable;
real_T *c5_ton;
real_T *c5_Firefct1;
real_T *c5_Coastfct1;
real_T *c5_Firefct2;
real_T *c5_Coastfct2;
real_T *c5_tjcalc1;
real_T *c5_tjcalc;
real_T (*c5_e)[2];
c5_jets = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
c5_tjcalc = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);
c5_Coastfct1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);
c5_tjcalc1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);
c5_enable = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);
c5_Coastfct2 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);
c5_Nofjets = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
c5_ton = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);
c5_Firefct2 = (real_T *)ssGetInputPortSignal(chartInstance->S, 4);
c5_Firefct1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 2);
c5_e = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 1);
_sfTime_ = (real_T)ssGetT(chartInstance->S);
_SFD_DATA_RANGE_CHECK(*c5_Nofjets, 8U);
_SFD_DATA_RANGE_CHECK(*c5_jets, 0U);
for(c5_i0 = 0; c5_i0 < 2; c5_i0 = c5_i0 + 1) {
_SFD_DATA_RANGE_CHECK((*c5_e)[c5_i0], 6U);
}
_SFD_DATA_RANGE_CHECK(*c5_enable, 9U);
_SFD_DATA_RANGE_CHECK(*c5_ton, 3U);
_SFD_DATA_RANGE_CHECK(*c5_Firefct1, 11U);
_SFD_DATA_RANGE_CHECK(*c5_Coastfct1, 12U);
_SFD_DATA_RANGE_CHECK(*c5_Firefct2, 1U);
_SFD_DATA_RANGE_CHECK(*c5_Coastfct2, 2U);
_SFD_DATA_RANGE_CHECK(*c5_tjcalc1, 4U);
_SFD_DATA_RANGE_CHECK(*c5_tjcalc, 13U);
_SFD_DATA_RANGE_CHECK(chartInstance->c5_tmin, 10U);
_SFD_DATA_RANGE_CHECK(chartInstance->c5_delt, 5U);
_SFD_DATA_RANGE_CHECK(chartInstance->c5_count, 7U);
c5_previousEvent = _sfEvent_;
_sfEvent_ = CALL_EVENT;
c5_chartstep_c5_LMdap_Library_NCS(chartInstance);
_sfEvent_ = c5_previousEvent;
sf_debug_check_for_state_inconsistency(_LMdap_Library_NCSMachineNumber_,
chartInstance->chartNumber, chartInstance->instanceNumber);
}
static void
c5_chartstep_c5_LMdap_Library_NCS(SFc5_LMdap_Library_NCSInstanceStruct
*chartInstance)
{
real_T *c5_Firefct2;
real_T *c5_Coastfct2;
real_T *c5_Firefct1;
real_T *c5_Coastfct1;
real_T *c5_jets;
real_T *c5_ton;
real_T *c5_enable;
real_T *c5_Nofjets;
real_T *c5_tjcalc;
real_T *c5_tjcalc1;
real_T (*c5_e)[2];
c5_jets = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);
c5_tjcalc = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);
c5_Coastfct1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);
c5_tjcalc1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);
c5_enable = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);
c5_Coastfct2 = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);
c5_Nofjets = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);
c5_ton = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);
c5_Firefct2 = (real_T *)ssGetInputPortSignal(chartInstance->S, 4);
c5_Firefct1 = (real_T *)ssGetInputPortSignal(chartInstance->S, 2);
c5_e = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 1);
_SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
if(chartInstance->c5_is_active_c5_LMdap_Library_NCS == 0) {
_SFD_CC_CALL(CHART_ENTER_ENTRY_FUNCTION_TAG,0);
chartInstance->c5_is_active_c5_LMdap_Library_NCS = 1U;
_SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,11);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,11);
chartInstance->c5_count = 2.0;
_SFD_DATA_RANGE_CHECK(chartInstance->c5_count, 7U);
chartInstance->c5_is_c5_LMdap_Library_NCS =
(uint8_T)c5_IN_Wait_for_stable_rate;
_SFD_CS_CALL(STATE_ACTIVE_TAG,6);
chartInstance->c5_tp_Wait_for_stable_rate = 1U;
} else {
switch(chartInstance->c5_is_c5_LMdap_Library_NCS) {
case c5_IN_Coast_region_1:
CV_CHART_EVAL(0,0,1);
c5_Coast_region_1(chartInstance);
break;
case c5_IN_Coast_region_2:
CV_CHART_EVAL(0,0,2);
c5_Coast_region_2(chartInstance);
break;
case c5_IN_Fire_region_1:
CV_CHART_EVAL(0,0,3);
c5_Fire_region_1(chartInstance);
break;
case c5_IN_Fire_region_2:
CV_CHART_EVAL(0,0,4);
c5_Fire_region_2(chartInstance);
break;
case c5_IN_Skip_a_Sample_1:
CV_CHART_EVAL(0,0,5);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,7);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,8);
if(CV_TRANSITION_EVAL(8U,
(int32_T)_SFD_CCP_CALL(8,0,((chartInstance->c5_count == 0.0)!=0))) != 0U
!= 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,8);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,7);
chartInstance->c5_tp_Skip_a_Sample_1 = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,7);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
chartInstance->c5_is_c5_LMdap_Library_NCS =
(uint8_T)c5_IN_Coast_region_1;
_SFD_CS_CALL(STATE_ACTIVE_TAG,3);
chartInstance->c5_tp_Coast_region_1 = 1U;
*c5_jets = 0.0;
_SFD_DATA_RANGE_CHECK(*c5_jets, 0U);
*c5_ton = 0.0;
_SFD_DATA_RANGE_CHECK(*c5_ton, 3U);
*c5_enable = 0.0;
_SFD_DATA_RANGE_CHECK(*c5_enable, 9U);
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,15);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,15);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,7);
chartInstance->c5_tp_Skip_a_Sample_1 = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,7);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
*c5_ton = *c5_ton - chartInstance->c5_delt;
_SFD_DATA_RANGE_CHECK(*c5_ton, 3U);
chartInstance->c5_is_c5_LMdap_Library_NCS =
(uint8_T)c5_IN_Skip_a_Sample_1;
_SFD_CS_CALL(STATE_ACTIVE_TAG,7);
chartInstance->c5_tp_Skip_a_Sample_1 = 1U;
chartInstance->c5_count = chartInstance->c5_count - 1.0;
_SFD_DATA_RANGE_CHECK(chartInstance->c5_count, 7U);
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
break;
case c5_IN_Skip_a_Sample_2:
CV_CHART_EVAL(0,0,6);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,1);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,7);
if(CV_TRANSITION_EVAL(7U,
(int32_T)_SFD_CCP_CALL(7,0,((chartInstance->c5_count == 0.0)!=0))) != 0U
!= 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,7);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,1);
chartInstance->c5_tp_Skip_a_Sample_2 = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,1);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
chartInstance->c5_is_c5_LMdap_Library_NCS =
(uint8_T)c5_IN_Coast_region_2;
_SFD_CS_CALL(STATE_ACTIVE_TAG,0);
chartInstance->c5_tp_Coast_region_2 = 1U;
*c5_jets = 0.0;
_SFD_DATA_RANGE_CHECK(*c5_jets, 0U);
*c5_ton = 0.0;
_SFD_DATA_RANGE_CHECK(*c5_ton, 3U);
*c5_enable = 0.0;
_SFD_DATA_RANGE_CHECK(*c5_enable, 9U);
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,12);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,12);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,1);
chartInstance->c5_tp_Skip_a_Sample_2 = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,1);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
*c5_ton = *c5_ton - chartInstance->c5_delt;
_SFD_DATA_RANGE_CHECK(*c5_ton, 3U);
chartInstance->c5_is_c5_LMdap_Library_NCS =
(uint8_T)c5_IN_Skip_a_Sample_2;
_SFD_CS_CALL(STATE_ACTIVE_TAG,1);
chartInstance->c5_tp_Skip_a_Sample_2 = 1U;
chartInstance->c5_count = chartInstance->c5_count - 1.0;
_SFD_DATA_RANGE_CHECK(chartInstance->c5_count, 7U);
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
break;
case c5_IN_Start:
CV_CHART_EVAL(0,0,7);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,5);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,1);
if(CV_TRANSITION_EVAL(1U, ((_SFD_CCP_CALL(1,0,(((*c5_e)[1] < 0.0)!=0)) !=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -