📄 c1_stateflow_heating_controller.c
字号:
/* Include files */
#include "Stateflow_Heating_Controller_sfun.h"
#include "c1_Stateflow_Heating_Controller.h"
#define CHARTINSTANCE_CHARTNUMBER (chartInstance.chartNumber)
#define CHARTINSTANCE_INSTANCENUMBER (chartInstance.instanceNumber)
#include "Stateflow_Heating_Controller_sfun_debug_macros.h"
/* Type Definitions */
/* Named Constants */
#define c1_event_tic (4U)
#define c1_event_temperature (0U)
#define c1_event_time (1U)
#define c1_event_next (3U)
#define c1_event_run (2U)
#define c1_IN_NO_ACTIVE_CHILD (0)
#define c1_IN_Start (2)
#define c1_IN_Output (1)
#define c1_IN_Output_Time (6)
#define c1_b_IN_Start (9)
#define c1_IN_Minutes2 (5)
#define c1_IN_Hour1 (2)
#define c1_IN_Hour2 (3)
#define c1_IN_Minutes1 (4)
#define c1_IN_Tens1 (11)
#define c1_IN_Tens2 (12)
#define c1_IN_Temperature (10)
#define c1_IN_SetTemp (7)
#define c1_IN_SetTime (8)
#define c1_IN_Wait1 (13)
#define c1_IN_Wait2 (14)
#define c1_IN_Wait3 (15)
#define c1_IN_Wait4 (16)
#define c1_IN_AMPM (1)
/* Variable Declarations */
/* Variable Definitions */
static SFc1_Stateflow_Heating_ControllerInstanceStruct chartInstance;
/* Function Declarations */
static void initialize_c1_Stateflow_Heating_Controller(void);
static void initialize_params_c1_Stateflow_Heating_Controller(void);
static void enable_c1_Stateflow_Heating_Controller(void);
static void disable_c1_Stateflow_Heating_Controller(void);
static void finalize_c1_Stateflow_Heating_Controller(void);
static void sf_c1_Stateflow_Heating_Controller(void);
static void c1_c1_Stateflow_Heating_Controller(void);
static void c1_Start(void);
static void c1_Process_Buttons(void);
static void c1_Tens1(void);
static void c1_Tens2(void);
static void c1_Temperature(void);
static void c1_SetTime(void);
static void c1_Wait1(void);
static void c1_Wait2(void);
static void c1_Wait3(void);
static void c1_Wait4(void);
static void init_script_number_translation(uint32_T c1_machineNumber, uint32_T
c1_chartNumber);
static void init_test_point_addr_map(void);
static void **get_test_point_address_map(void);
static rtwCAPI_ModelMappingInfo *get_test_point_mapping_info(void);
static void init_dsm_address_info(void);
/* Function Definitions */
static void initialize_c1_Stateflow_Heating_Controller(void)
{
int32_T c1_i0;
int32_T c1_i1;
real_T *c1_SetClock;
real_T *c1_Time;
real_T *c1_Reset;
real_T (*c1_SetTemps)[2];
real_T (*c1_Command)[2];
c1_Time = (real_T *)ssGetOutputPortSignal(chartInstance.S, 2);
c1_SetClock = (real_T *)ssGetOutputPortSignal(chartInstance.S, 1);
c1_SetTemps = (real_T (*)[2])ssGetOutputPortSignal(chartInstance.S, 4);
c1_Command = (real_T (*)[2])ssGetOutputPortSignal(chartInstance.S, 5);
c1_Reset = (real_T *)ssGetOutputPortSignal(chartInstance.S, 3);
_sfTime_ = (real_T)ssGetT(chartInstance.S);
chartInstance.c1_is_active_Interactions = 0U;
chartInstance.c1_is_Interactions = 0U;
chartInstance.c1_tp_Interactions = 0U;
chartInstance.c1_tp_Output = 0U;
chartInstance.c1_tp_Start = 0U;
chartInstance.c1_is_active_Process_Buttons = 0U;
chartInstance.c1_is_Process_Buttons = 0U;
chartInstance.c1_tp_Process_Buttons = 0U;
chartInstance.c1_tp_AMPM = 0U;
chartInstance.c1_tp_Hour1 = 0U;
chartInstance.c1_tp_Hour2 = 0U;
chartInstance.c1_tp_Minutes1 = 0U;
chartInstance.c1_tp_Minutes2 = 0U;
chartInstance.c1_tp_Output_Time = 0U;
chartInstance.c1_tp_SetTemp = 0U;
chartInstance.c1_tp_SetTime = 0U;
chartInstance.c1_b_tp_Start = 0U;
chartInstance.c1_tp_Temperature = 0U;
chartInstance.c1_tp_Tens1 = 0U;
chartInstance.c1_tp_Tens2 = 0U;
chartInstance.c1_tp_Wait1 = 0U;
chartInstance.c1_tp_Wait2 = 0U;
chartInstance.c1_tp_Wait3 = 0U;
chartInstance.c1_tp_Wait4 = 0U;
chartInstance.c1_is_active_c1_Stateflow_Heating_Controller = 0U;
chartInstance.c1_m1 = 0.0;
chartInstance.c1_m2 = 0.0;
chartInstance.c1_h1 = 0.0;
chartInstance.c1_h2 = 0.0;
chartInstance.c1_d = 1.0;
chartInstance.c1_data = 0.0;
chartInstance.c1_Zone = 1.0;
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance.S, 1) != 0)) {
*c1_SetClock = 0.0;
}
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance.S, 2) != 0)) {
*c1_Time = 1.0;
}
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance.S, 3) != 0)) {
*c1_Reset = 0.0;
}
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance.S, 4) != 0)) {
for(c1_i0 = 0; c1_i0 < 2; c1_i0 = c1_i0 + 1) {
(*c1_SetTemps)[c1_i0] = 70.0;
}
}
if(!((boolean_T)cdrGetOutputPortReusable(chartInstance.S, 5) != 0)) {
for(c1_i1 = 0; c1_i1 < 2; c1_i1 = c1_i1 + 1) {
(*c1_Command)[c1_i1] = 0.0;
}
}
}
static void initialize_params_c1_Stateflow_Heating_Controller(void)
{
}
static void enable_c1_Stateflow_Heating_Controller(void)
{
}
static void disable_c1_Stateflow_Heating_Controller(void)
{
}
static void finalize_c1_Stateflow_Heating_Controller(void)
{
}
static void sf_c1_Stateflow_Heating_Controller(void)
{
int32_T c1_i2;
int32_T c1_i3;
int32_T c1_i4;
uint8_T c1_previousEvent;
uint8_T c1_b_previousEvent;
real_T *c1_SetClock;
real_T *c1_Time;
real_T *c1_Reset;
real_T *c1_Setting;
real_T *c1_PushButton;
real_T *c1_Enter;
real_T (*c1_SetTemps)[2];
real32_T (*c1_MeasuredTemps)[2];
real_T (*c1_Command)[2];
int8_T *c1_tic;
int8_T *c1_next;
c1_tic = (int8_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 4) + 0);
c1_next = (int8_T *)*(ssGetInputPortSignalPtrs(chartInstance.S, 4) + 1);
c1_MeasuredTemps = (real32_T (*)[2])ssGetInputPortSignal(chartInstance.S, 3);
c1_Time = (real_T *)ssGetOutputPortSignal(chartInstance.S, 2);
c1_PushButton = (real_T *)ssGetInputPortSignal(chartInstance.S, 1);
c1_Setting = (real_T *)ssGetInputPortSignal(chartInstance.S, 0);
c1_Enter = (real_T *)ssGetInputPortSignal(chartInstance.S, 2);
c1_SetClock = (real_T *)ssGetOutputPortSignal(chartInstance.S, 1);
c1_SetTemps = (real_T (*)[2])ssGetOutputPortSignal(chartInstance.S, 4);
c1_Command = (real_T (*)[2])ssGetOutputPortSignal(chartInstance.S, 5);
c1_Reset = (real_T *)ssGetOutputPortSignal(chartInstance.S, 3);
_sfTime_ = (real_T)ssGetT(chartInstance.S);
_SFD_DATA_RANGE_CHECK(*c1_SetClock, 0U);
_SFD_DATA_RANGE_CHECK(*c1_Time, 2U);
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
for(c1_i2 = 0; c1_i2 < 2; c1_i2 = c1_i2 + 1) {
_SFD_DATA_RANGE_CHECK((*c1_SetTemps)[c1_i2], 13U);
}
_SFD_DATA_RANGE_CHECK(*c1_Setting, 7U);
_SFD_DATA_RANGE_CHECK(*c1_PushButton, 5U);
_SFD_DATA_RANGE_CHECK(*c1_Enter, 9U);
for(c1_i3 = 0; c1_i3 < 2; c1_i3 = c1_i3 + 1) {
_SFD_DATA_RANGE_CHECK((real_T)(*c1_MeasuredTemps)[c1_i3], 4U);
}
for(c1_i4 = 0; c1_i4 < 2; c1_i4 = c1_i4 + 1) {
_SFD_DATA_RANGE_CHECK((*c1_Command)[c1_i4], 3U);
}
_SFD_DATA_RANGE_CHECK(chartInstance.c1_m1, 11U);
_SFD_DATA_RANGE_CHECK(chartInstance.c1_m2, 15U);
_SFD_DATA_RANGE_CHECK(chartInstance.c1_h1, 1U);
_SFD_DATA_RANGE_CHECK(chartInstance.c1_h2, 10U);
_SFD_DATA_RANGE_CHECK(chartInstance.c1_d, 12U);
_SFD_DATA_RANGE_CHECK(chartInstance.c1_data, 6U);
_SFD_DATA_RANGE_CHECK(chartInstance.c1_Zone, 8U);
if(*c1_tic == 1) {
c1_previousEvent = _sfEvent_;
_sfEvent_ = c1_event_tic;
_SFD_CE_CALL(EVENT_BEFORE_BROADCAST_TAG,c1_event_tic);
c1_c1_Stateflow_Heating_Controller();
_SFD_CE_CALL(EVENT_AFTER_BROADCAST_TAG,c1_event_tic);
_sfEvent_ = c1_previousEvent;
}
if(*c1_next == 1) {
c1_b_previousEvent = _sfEvent_;
_sfEvent_ = c1_event_next;
_SFD_CE_CALL(EVENT_BEFORE_BROADCAST_TAG,c1_event_next);
c1_c1_Stateflow_Heating_Controller();
_SFD_CE_CALL(EVENT_AFTER_BROADCAST_TAG,c1_event_next);
_sfEvent_ = c1_b_previousEvent;
}
sf_debug_check_for_state_inconsistency(_Stateflow_Heating_ControllerMachineNumber_,
chartInstance.chartNumber, chartInstance.
instanceNumber);
}
static void c1_c1_Stateflow_Heating_Controller(void)
{
uint8_T c1_previousEvent;
int32_T c1_i5;
int32_T c1_i6;
uint8_T c1_b_previousEvent;
int32_T c1_i7;
int32_T c1_i8;
uint8_T c1_c_previousEvent;
int32_T c1_i9;
int32_T c1_i10;
real_T *c1_SetClock;
real_T *c1_Setting;
real_T *c1_Reset;
real_T (*c1_Command)[2];
real_T (*c1_SetTemps)[2];
real32_T (*c1_MeasuredTemps)[2];
c1_MeasuredTemps = (real32_T (*)[2])ssGetInputPortSignal(chartInstance.S, 3);
c1_Setting = (real_T *)ssGetInputPortSignal(chartInstance.S, 0);
c1_SetClock = (real_T *)ssGetOutputPortSignal(chartInstance.S, 1);
c1_SetTemps = (real_T (*)[2])ssGetOutputPortSignal(chartInstance.S, 4);
c1_Command = (real_T (*)[2])ssGetOutputPortSignal(chartInstance.S, 5);
c1_Reset = (real_T *)ssGetOutputPortSignal(chartInstance.S, 3);
_SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
if(_sfEvent_ == c1_event_next) {
if(chartInstance.c1_temporalCounter_i1 < 63) {
chartInstance.c1_temporalCounter_i1 =
(uint8_T)(chartInstance.c1_temporalCounter_i1 + 1);
}
}
if(chartInstance.c1_is_active_c1_Stateflow_Heating_Controller == 0) {
_SFD_CC_CALL(CHART_ENTER_ENTRY_FUNCTION_TAG,0);
chartInstance.c1_is_active_c1_Stateflow_Heating_Controller = 1U;
_SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
chartInstance.c1_is_active_Interactions = 1U;
_SFD_CS_CALL(STATE_ACTIVE_TAG,17);
chartInstance.c1_tp_Interactions = 1U;
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,20);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,20);
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_Start;
_SFD_CS_CALL(STATE_ACTIVE_TAG,1);
chartInstance.c1_tp_Start = 1U;
chartInstance.c1_is_active_Process_Buttons = 1U;
_SFD_CS_CALL(STATE_ACTIVE_TAG,5);
chartInstance.c1_tp_Process_Buttons = 1U;
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,25);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,25);
if(chartInstance.c1_is_Process_Buttons != 9) {
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_b_IN_Start;
_SFD_CS_CALL(STATE_ACTIVE_TAG,18);
chartInstance.c1_b_tp_Start = 1U;
*c1_SetClock = 0.0;
_SFD_DATA_RANGE_CHECK(*c1_SetClock, 0U);
}
} else {
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,17);
if(chartInstance.c1_is_active_Interactions != 0) {
switch(chartInstance.c1_is_Interactions) {
case c1_IN_Output:
CV_STATE_EVAL(17,0,1);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,13);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,4);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,4);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,13);
chartInstance.c1_tp_Output = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,13);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,13);
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_Start;
_SFD_CS_CALL(STATE_ACTIVE_TAG,1);
chartInstance.c1_tp_Start = 1U;
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,13);
break;
case c1_IN_Start:
CV_STATE_EVAL(17,0,2);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,1);
if(chartInstance.c1_is_Interactions == 2) {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,32);
if(CV_TRANSITION_EVAL(32U, (_SFD_CCP_CALL(32,0,((_sfEvent_ ==
c1_event_tic)!=0)) != 0) && (_SFD_CCP_CALL(32,1,((*c1_Setting ==
1.0)!=0))
!= 0)) != 0U != 0) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[3];
unsigned int numTransitions=1;
transitionList[0] = 32;
sf_debug_transition_conflict_check_begin();
if((_sfEvent_ == c1_event_tic) && (*c1_Setting == 3.0)) {
transitionList[numTransitions] = 26;
numTransitions++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -