📄 c1_stateflow_heating_controller.c
字号:
if((_sfEvent_ == c1_event_tic) && (*c1_Setting == 2.0)) {
transitionList[numTransitions] = 27;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,32);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,1);
chartInstance.c1_tp_Start = 0U;
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
_SFD_CS_CALL(STATE_INACTIVE_TAG,1);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
c1_previousEvent = _sfEvent_;
_sfEvent_ = c1_event_run;
_SFD_CE_CALL(EVENT_BEFORE_BROADCAST_TAG,c1_event_run);
c1_Process_Buttons();
_SFD_CE_CALL(EVENT_AFTER_BROADCAST_TAG,c1_event_run);
_sfEvent_ = c1_previousEvent;
if(chartInstance.c1_is_Interactions != 1) {
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_Output;
_SFD_CS_CALL(STATE_ACTIVE_TAG,13);
chartInstance.c1_tp_Output = 1U;
for(c1_i5 = 0; c1_i5 < 2; c1_i5 = c1_i5 + 1) {
(*c1_Command)[c1_i5] = (*c1_SetTemps)[c1_i5] -
(real_T)(*c1_MeasuredTemps)[c1_i5];
}
for(c1_i6 = 0; c1_i6 < 2; c1_i6 = c1_i6 + 1) {
_SFD_DATA_RANGE_CHECK((*c1_Command)[c1_i6], 3U);
}
*c1_Reset = 0.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
}
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,26);
if(CV_TRANSITION_EVAL(26U, (_SFD_CCP_CALL(26,0,((_sfEvent_ ==
c1_event_tic)!=0)) != 0) && (_SFD_CCP_CALL(26,1,((*c1_Setting
== 3.0)!=0))
!= 0)) != 0U != 0) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[2];
unsigned int numTransitions=1;
transitionList[0] = 26;
sf_debug_transition_conflict_check_begin();
if((_sfEvent_ == c1_event_tic) && (*c1_Setting == 2.0)) {
transitionList[numTransitions] = 27;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,26);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,1);
chartInstance.c1_tp_Start = 0U;
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
_SFD_CS_CALL(STATE_INACTIVE_TAG,1);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
c1_b_previousEvent = _sfEvent_;
_sfEvent_ = c1_event_temperature;
_SFD_CE_CALL(EVENT_BEFORE_BROADCAST_TAG,c1_event_temperature);
c1_Process_Buttons();
_SFD_CE_CALL(EVENT_AFTER_BROADCAST_TAG,c1_event_temperature);
_sfEvent_ = c1_b_previousEvent;
if(chartInstance.c1_is_Interactions != 1) {
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_Output;
_SFD_CS_CALL(STATE_ACTIVE_TAG,13);
chartInstance.c1_tp_Output = 1U;
for(c1_i7 = 0; c1_i7 < 2; c1_i7 = c1_i7 + 1) {
(*c1_Command)[c1_i7] = (*c1_SetTemps)[c1_i7] -
(real_T)(*c1_MeasuredTemps)[c1_i7];
}
for(c1_i8 = 0; c1_i8 < 2; c1_i8 = c1_i8 + 1) {
_SFD_DATA_RANGE_CHECK((*c1_Command)[c1_i8], 3U);
}
*c1_Reset = 0.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
}
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,27);
if(CV_TRANSITION_EVAL(27U, (_SFD_CCP_CALL(27,0,((_sfEvent_ ==
c1_event_tic)!=0)) != 0) &&
(_SFD_CCP_CALL(27,1,((*c1_Setting == 2.0)!=0))
!= 0)) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,27);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,1);
chartInstance.c1_tp_Start = 0U;
chartInstance.c1_is_Interactions =
(uint8_T)c1_IN_NO_ACTIVE_CHILD;
_SFD_CS_CALL(STATE_INACTIVE_TAG,1);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
c1_c_previousEvent = _sfEvent_;
_sfEvent_ = c1_event_time;
_SFD_CE_CALL(EVENT_BEFORE_BROADCAST_TAG,c1_event_time);
c1_Process_Buttons();
_SFD_CE_CALL(EVENT_AFTER_BROADCAST_TAG,c1_event_time);
_sfEvent_ = c1_c_previousEvent;
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_Output;
_SFD_CS_CALL(STATE_ACTIVE_TAG,13);
chartInstance.c1_tp_Output = 1U;
for(c1_i9 = 0; c1_i9 < 2; c1_i9 = c1_i9 + 1) {
(*c1_Command)[c1_i9] = (*c1_SetTemps)[c1_i9] -
(real_T)(*c1_MeasuredTemps)[c1_i9];
}
for(c1_i10 = 0; c1_i10 < 2; c1_i10 = c1_i10 + 1) {
_SFD_DATA_RANGE_CHECK((*c1_Command)[c1_i10], 3U);
}
*c1_Reset = 0.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
}
}
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
break;
default:
CV_STATE_EVAL(17,0,0);
chartInstance.c1_is_Interactions = (uint8_T)c1_IN_NO_ACTIVE_CHILD;
_SFD_CS_CALL(STATE_INACTIVE_TAG,13);
break;
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,17);
c1_Process_Buttons();
}
_SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
}
static void c1_Start(void)
{
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,18);
if(chartInstance.c1_is_Process_Buttons == 9) {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,3);
if(CV_TRANSITION_EVAL(3U, (int32_T)_SFD_CCP_CALL(3,0,((_sfEvent_ ==
c1_event_time)!=0))) != 0U != 0) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[2];
unsigned int numTransitions=1;
transitionList[0] = 3;
sf_debug_transition_conflict_check_begin();
if(_sfEvent_ == c1_event_temperature) {
transitionList[numTransitions] = 37;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,3);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,18);
chartInstance.c1_b_tp_Start = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,18);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,18);
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_IN_SetTime;
_SFD_CS_CALL(STATE_ACTIVE_TAG,9);
chartInstance.c1_tp_SetTime = 1U;
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,37);
if(CV_TRANSITION_EVAL(37U, (int32_T)_SFD_CCP_CALL(37,0,((_sfEvent_ ==
c1_event_temperature)!=0))) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,37);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,18);
chartInstance.c1_b_tp_Start = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,18);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,18);
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_IN_Temperature;
_SFD_CS_CALL(STATE_ACTIVE_TAG,11);
chartInstance.c1_tp_Temperature = 1U;
}
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,18);
}
static void c1_Process_Buttons(void)
{
real_T *c1_PushButton;
real_T *c1_Reset;
real_T *c1_Enter;
real_T *c1_Time;
real_T *c1_SetClock;
real_T (*c1_SetTemps)[2];
c1_Time = (real_T *)ssGetOutputPortSignal(chartInstance.S, 2);
c1_PushButton = (real_T *)ssGetInputPortSignal(chartInstance.S, 1);
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_Reset = (real_T *)ssGetOutputPortSignal(chartInstance.S, 3);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,5);
if(chartInstance.c1_is_active_Process_Buttons != 0) {
switch(chartInstance.c1_is_Process_Buttons) {
case c1_IN_AMPM:
CV_STATE_EVAL(5,0,1);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,7);
if(chartInstance.c1_is_Process_Buttons == 1) {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,35);
if(CV_TRANSITION_EVAL(35U, (_SFD_CCP_CALL(35,0,((_sfEvent_ ==
c1_event_next)!=0)) != 0) && (_SFD_CCP_CALL(35,1,((*c1_Enter ==
1.0)!=0))
!= 0)) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,35);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,11);
if(CV_TRANSITION_EVAL(11U, (int32_T)_SFD_CCP_CALL(11,0,((*c1_Time >
100.0)!=0))) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,11);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,7);
chartInstance.c1_tp_AMPM = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,7);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
*c1_Time = *c1_Time - 100.0;
_SFD_DATA_RANGE_CHECK(*c1_Time, 2U);
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_IN_AMPM;
_SFD_CS_CALL(STATE_ACTIVE_TAG,7);
chartInstance.c1_temporalCounter_i1 = 0U;
chartInstance.c1_tp_AMPM = 1U;
*c1_Reset = 1.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,30);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,30);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,7);
chartInstance.c1_tp_AMPM = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,7);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
*c1_Time = *c1_Time + 100.0;
_SFD_DATA_RANGE_CHECK(*c1_Time, 2U);
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_IN_AMPM;
_SFD_CS_CALL(STATE_ACTIVE_TAG,7);
chartInstance.c1_temporalCounter_i1 = 0U;
chartInstance.c1_tp_AMPM = 1U;
*c1_Reset = 1.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
}
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,16);
if(CV_TRANSITION_EVAL(16U, (_SFD_CCP_CALL(16,0,((_sfEvent_ ==
c1_event_next)!=0)) != 0) && (_SFD_CCP_CALL(16,1,((chartInstance.
c1_temporalCounter_i1 >= 45)!=0)) != 0)) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,16);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,7);
chartInstance.c1_tp_AMPM = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,7);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
*c1_SetClock = 0.0;
_SFD_DATA_RANGE_CHECK(*c1_SetClock, 0U);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,25);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,25);
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);
}
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
break;
case c1_IN_Hour1:
CV_STATE_EVAL(5,0,2);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,2);
if(CV_TRANSITION_EVAL(2U, (_SFD_CCP_CALL(2,0,((_sfEvent_ ==
c1_event_next)!=0)) != 0) && (_SFD_CCP_CALL(2,1,((*c1_PushButton ==
-1.0)!=0))
!= 0)) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,2);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,0);
chartInstance.c1_tp_Hour1 = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,0);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_IN_Wait3;
_SFD_CS_CALL(STATE_ACTIVE_TAG,8);
chartInstance.c1_temporalCounter_i1 = 0U;
chartInstance.c1_tp_Wait3 = 1U;
} else {
*c1_Reset = 1.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
break;
case c1_IN_Hour2:
CV_STATE_EVAL(5,0,3);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,4);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,17);
if(CV_TRANSITION_EVAL(17U, (_SFD_CCP_CALL(17,0,((_sfEvent_ ==
c1_event_next)!=0)) != 0) && (_SFD_CCP_CALL(17,1,((*c1_PushButton ==
-1.0)!=0)) != 0)) != 0U != 0) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,17);
_SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,4);
chartInstance.c1_tp_Hour2 = 0U;
_SFD_CS_CALL(STATE_INACTIVE_TAG,4);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
chartInstance.c1_is_Process_Buttons = (uint8_T)c1_IN_Wait2;
_SFD_CS_CALL(STATE_ACTIVE_TAG,3);
chartInstance.c1_temporalCounter_i1 = 0U;
chartInstance.c1_tp_Wait2 = 1U;
} else {
*c1_Reset = 1.0;
_SFD_DATA_RANGE_CHECK(*c1_Reset, 14U);
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
break;
case c1_IN_Minutes1:
CV_STATE_EVAL(5,0,4);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,19);
if(chartInstance.c1_is_Process_Buttons == 4) {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,5);
if(CV_TRANSITION_EVAL(5U, (_SFD_CCP_CALL(5,0,((_sfEvent_ ==
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -