📄 ieee80211a_sfun_c1.c
字号:
/*
*
* Stateflow code generation for chart:
* ieee80211a/Adaptive Modulation Control
*
* Target Name : sfun
* Model Version : 1.188
* Stateflow Version : 5.0.0.13.00.1.000001
* Date of code generation : 15-Oct-2004 11:39:45
*
*/
#include "ieee80211a_sfun.h"
#include "ieee80211a_sfun_c1.h"
#define mexPrintf sf_mex_printf
#ifdef printf
#undef printf
#endif
#define printf sf_mex_printf
#define CHARTINSTANCE_CHARTNUMBER (chartInstance.chartNumber)
#define CHARTINSTANCE_INSTANCENUMBER (chartInstance.instanceNumber)
#include "ieee80211a_sfun_debug_macros.h"
#define IN_NO_ACTIVE_CHILD (0)
#define IN_m0_c1_s1_Mod_16QAM_24Mbps 1
#define IN_m0_c1_s2_Mod_16QAM_36Mbps 2
#define IN_m0_c1_s3_Mod_64QAM2_54Mbps 3
#define IN_m0_c1_s4_Mod_64QAM_48Mbps 4
#define IN_m0_c1_s5_Mod_BPSK2_9Mbps 5
#define IN_m0_c1_s6_Mod_BPSK_6Mbps 6
#define IN_m0_c1_s7_Mod_QPSK2_18Mbps 7
#define IN_m0_c1_s8_Mod_QPSK_12Mbps 8
static SFieee80211a_sfun_c1InstanceStruct chartInstance;
#define InputData_m0_c1_d3_snrEst (((real_T *)(ssGetInputPortSignal(chartInstance.S,0)))[0])
#define OutputData_m0_c1_d4_modIdx (((real_T *)(ssGetOutputPortSignal(chartInstance.S,1)))[0])
#define OutputData_m0_c1_d5_bitRate (((real_T *)(ssGetOutputPortSignal(chartInstance.S,2)))[0])
static void enter_atomic_m0_c1_s1_Mod_16QAM_24Mbps(void);
static void exit_atomic_m0_c1_s1_Mod_16QAM_24Mbps(void);
static void enter_atomic_m0_c1_s2_Mod_16QAM_36Mbps(void);
static void exit_atomic_m0_c1_s2_Mod_16QAM_36Mbps(void);
static void exit_atomic_m0_c1_s3_Mod_64QAM2_54Mbps(void);
static void enter_atomic_m0_c1_s4_Mod_64QAM_48Mbps(void);
static void exit_atomic_m0_c1_s4_Mod_64QAM_48Mbps(void);
static void enter_atomic_m0_c1_s5_Mod_BPSK2_9Mbps(void);
static void exit_atomic_m0_c1_s5_Mod_BPSK2_9Mbps(void);
static void exit_atomic_m0_c1_s6_Mod_BPSK_6Mbps(void);
static void enter_atomic_m0_c1_s7_Mod_QPSK2_18Mbps(void);
static void exit_atomic_m0_c1_s7_Mod_QPSK2_18Mbps(void);
static void enter_atomic_m0_c1_s8_Mod_QPSK_12Mbps(void);
static void exit_atomic_m0_c1_s8_Mod_QPSK_12Mbps(void);
void ieee80211a_sfun_c1(void)
{
_SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
if(chartInstance.State.is_active_ieee80211a_sfun_c1 == 0) {
_SFD_CC_CALL(CHART_ENTER_ENTRY_FUNCTION_TAG,0);
chartInstance.State.is_active_ieee80211a_sfun_c1 = 1;
_SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,4);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,4);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,4);
enter_atomic_m0_c1_s7_Mod_QPSK2_18Mbps();
} else {
switch(chartInstance.State.is_ieee80211a_sfun_c1) {
case IN_m0_c1_s1_Mod_16QAM_24Mbps:
CV_CHART_EVAL(0,0,1);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,1);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,1,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,13);
if(CV_TRANSITION_EVAL(13, _SFD_CCP_CALL(13,0,(InputData_m0_c1_d3_snrEst >
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 4, 1, 7, 0)] +
chartInstance.LocalData.m0_c1_d1_hyst)))) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[2];
unsigned int numTransitions=1;
transitionList[0] = 13;
sf_debug_transition_conflict_check_begin();
if(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[3] -
chartInstance.LocalData.m0_c1_d1_hyst) {
transitionList[numTransitions] = 0;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,13);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,13);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,13);
exit_atomic_m0_c1_s1_Mod_16QAM_24Mbps();
enter_atomic_m0_c1_s2_Mod_16QAM_36Mbps();
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,0);
if(CV_TRANSITION_EVAL(0, _SFD_CCP_CALL(0,0,(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 3, 1, 7, 0)] -
chartInstance.LocalData.m0_c1_d1_hyst)))) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,0);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,0);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,0);
exit_atomic_m0_c1_s1_Mod_16QAM_24Mbps();
enter_atomic_m0_c1_s7_Mod_QPSK2_18Mbps();
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
break;
case IN_m0_c1_s2_Mod_16QAM_36Mbps:
CV_CHART_EVAL(0,0,2);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,7);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,7,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,1);
if(CV_TRANSITION_EVAL(1, _SFD_CCP_CALL(1,0,(InputData_m0_c1_d3_snrEst >
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 5, 1, 7, 0)] +
chartInstance.LocalData.m0_c1_d1_hyst)))) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[2];
unsigned int numTransitions=1;
transitionList[0] = 1;
sf_debug_transition_conflict_check_begin();
if(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[4] -
chartInstance.LocalData.m0_c1_d1_hyst) {
transitionList[numTransitions] = 14;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,1);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,1);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,1);
exit_atomic_m0_c1_s2_Mod_16QAM_36Mbps();
enter_atomic_m0_c1_s4_Mod_64QAM_48Mbps();
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,14);
if(CV_TRANSITION_EVAL(14, _SFD_CCP_CALL(14,0,(InputData_m0_c1_d3_snrEst
<= chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 4, 1, 7, 0)] -
chartInstance.LocalData.m0_c1_d1_hyst)))) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,14);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,14);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,14);
exit_atomic_m0_c1_s2_Mod_16QAM_36Mbps();
enter_atomic_m0_c1_s1_Mod_16QAM_24Mbps();
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,7);
break;
case IN_m0_c1_s3_Mod_64QAM2_54Mbps:
CV_CHART_EVAL(0,0,3);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,6);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,6,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,6);
if(CV_TRANSITION_EVAL(6, _SFD_CCP_CALL(6,0,(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 6, 1, 7, 0)] -
chartInstance.LocalData.m0_c1_d1_hyst)))) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,6);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,6);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,6);
exit_atomic_m0_c1_s3_Mod_64QAM2_54Mbps();
enter_atomic_m0_c1_s4_Mod_64QAM_48Mbps();
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,6);
break;
case IN_m0_c1_s4_Mod_64QAM_48Mbps:
CV_CHART_EVAL(0,0,4);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,4);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,4,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,3);
if(CV_TRANSITION_EVAL(3, _SFD_CCP_CALL(3,0,(InputData_m0_c1_d3_snrEst >
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 6, 1, 7, 0)] +
chartInstance.LocalData.m0_c1_d1_hyst)))) {
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(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[5] -
chartInstance.LocalData.m0_c1_d1_hyst) {
transitionList[numTransitions] = 7;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,3);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,3);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,3);
exit_atomic_m0_c1_s4_Mod_64QAM_48Mbps();
_SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,6);
_SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,6,0);
chartInstance.State.is_ieee80211a_sfun_c1 =
IN_m0_c1_s3_Mod_64QAM2_54Mbps;
_SFD_CS_CALL(STATE_ACTIVE_TAG,6);
_SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,6);
OutputData_m0_c1_d4_modIdx = 8.0;
_SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,6,1);
OutputData_m0_c1_d5_bitRate = 54.0;
_SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,6,2);
_SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,6);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,6);
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,7);
if(CV_TRANSITION_EVAL(7, _SFD_CCP_CALL(7,0,(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 5, 1, 7, 0)] -
chartInstance.LocalData.m0_c1_d1_hyst)))) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,7);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,7);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,7);
exit_atomic_m0_c1_s4_Mod_64QAM_48Mbps();
enter_atomic_m0_c1_s2_Mod_16QAM_36Mbps();
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
break;
case IN_m0_c1_s5_Mod_BPSK2_9Mbps:
CV_CHART_EVAL(0,0,5);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,0);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,0,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,11);
if(CV_TRANSITION_EVAL(11, _SFD_CCP_CALL(11,0,(InputData_m0_c1_d3_snrEst >
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 1, 1, 7, 0)] +
chartInstance.LocalData.m0_c1_d1_hyst)))) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[2];
unsigned int numTransitions=1;
transitionList[0] = 11;
sf_debug_transition_conflict_check_begin();
if(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[0] -
chartInstance.LocalData.m0_c1_d1_hyst) {
transitionList[numTransitions] = 5;
numTransitions++;
}
sf_debug_transition_conflict_check_end();
if(numTransitions>1) {
_SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
}
}
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,11);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,11);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,11);
exit_atomic_m0_c1_s5_Mod_BPSK2_9Mbps();
enter_atomic_m0_c1_s8_Mod_QPSK_12Mbps();
} else {
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,5);
if(CV_TRANSITION_EVAL(5, _SFD_CCP_CALL(5,0,(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 0, 1, 7, 0)] -
chartInstance.LocalData.m0_c1_d1_hyst)))) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,5);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,5);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,5);
exit_atomic_m0_c1_s5_Mod_BPSK2_9Mbps();
_SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,2);
_SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,0);
chartInstance.State.is_ieee80211a_sfun_c1 = IN_m0_c1_s6_Mod_BPSK_6Mbps;
_SFD_CS_CALL(STATE_ACTIVE_TAG,2);
_SFD_CS_CALL(STATE_BEFORE_ENTRY_ACTION_TAG,2);
OutputData_m0_c1_d4_modIdx = 1.0;
_SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,1);
OutputData_m0_c1_d5_bitRate = 6.0;
_SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,2);
_SFD_CS_CALL(STATE_AFTER_ENTRY_ACTION_TAG,2);
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
}
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
break;
case IN_m0_c1_s6_Mod_BPSK_6Mbps:
CV_CHART_EVAL(0,0,6);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,2);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,2,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,8);
if(CV_TRANSITION_EVAL(8, _SFD_CCP_CALL(8,0,(InputData_m0_c1_d3_snrEst >
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 0, 1, 7, 0)] +
chartInstance.LocalData.m0_c1_d1_hyst)))) {
_SFD_CT_CALL(TRANSITION_ACTIVE_TAG,8);
_SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,8);
_SFD_CT_CALL(TRANSITION_INACTIVE_TAG,8);
exit_atomic_m0_c1_s6_Mod_BPSK_6Mbps();
enter_atomic_m0_c1_s5_Mod_BPSK2_9Mbps();
}
_SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
break;
case IN_m0_c1_s7_Mod_QPSK2_18Mbps:
CV_CHART_EVAL(0,0,7);
_SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,3);
_SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,3,0);
_SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,2);
if(CV_TRANSITION_EVAL(2, _SFD_CCP_CALL(2,0,(InputData_m0_c1_d3_snrEst >
chartInstance.LocalData.m0_c1_d2_thres[
_SFD_ARRAY_BOUNDS_CHECK(0, 3, 1, 7, 0)] +
chartInstance.LocalData.m0_c1_d1_hyst)))) {
if(sf_debug_transition_conflict_check_enabled()) {
unsigned int transitionList[2];
unsigned int numTransitions=1;
transitionList[0] = 2;
sf_debug_transition_conflict_check_begin();
if(InputData_m0_c1_d3_snrEst <=
chartInstance.LocalData.m0_c1_d2_thres[2] -
chartInstance.LocalData.m0_c1_d1_hyst) {
transitionList[numTransitions] = 9;
numTransitions++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -