⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auto_netcon_sfun_c1.c

📁 RFID读卡器与标签之间在AWGN和加入其它读写器干扰下的BER仿真
💻 C
📖 第 1 页 / 共 4 页
字号:
/*
 *
 * Stateflow code generation for chart:
 *    auto_netcon/chart/Chart_repaired_1
 * 
 * Target Name                          : sfun
 * Model Version                        : 1.188
 * Stateflow Version                    : 5.0.0.13.00.1.000001
 * Date of code generation              : 03-Jul-2007 09:28:18
 *
 */

#define IN_SF_CHART_SOURCE              1
#include "auto_netcon_sfun.h"
#include "auto_netcon_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 "auto_netcon_sfun_debug_macros.h"
#define IN_NO_ACTIVE_CHILD              (0)
#define IN_m0_c1_s1_ROAD1               1
#define IN_m0_c1_s2_ROAD2               2
#define IN_m0_c1_s3_ROAD3               3
#define IN_m0_c1_s4_ROAD4               4
#define IN_m0_c1_s5_STOP                5
#define IN_m0_c1_s6_start               6
#define event_m0_c1_e9_event            0
static SFauto_netcon_sfun_c1InstanceStruct chartInstance;
#define InputData_m0_c1_d7_indp         (((real_T *)(ssGetInputPortSignal(chartInstance.S,0)))[0])
#define m0_c1_e9_event                  (*(int8_T *)(ssGetInputPortSignalPtrs(chartInstance.S,1)[0]))
#define OutputData_m0_c1_d8_outdp       (((real_T *)(ssGetOutputPortSignal(chartInstance.S,1)))[0])
static uint16_T m0_c1_u16_pre_incr__(uint16_T *b);
static uint16_T m0_c1_u16_add__(uint16_T b, uint16_T c);
static int8_T m0_c1_s8_pre_incr__(int8_T *b);
static int8_T m0_c1_s8_add__(int8_T b, int8_T c);
static uint8_T m0_c1_u8_pre_incr__(uint8_T *b);
static uint8_T m0_c1_u8_add__(uint8_T b, uint8_T c);

static uint16_T m0_c1_u16_pre_incr__(uint16_T *b)
{
  *b = m0_c1_u16_add__(*b, 1);
  return *b;
}
static uint16_T m0_c1_u16_add__(uint16_T b, uint16_T c)
{
  uint16_T a;
  a = (uint16_T)(b + c);
  if(a < b) {
    sf_debug_overflow_detection(0);
  }
  return a;
}
static int8_T m0_c1_s8_pre_incr__(int8_T *b)
{
  *b = m0_c1_s8_add__(*b, 1);
  return *b;
}
static int8_T m0_c1_s8_add__(int8_T b, int8_T c)
{
  int8_T a;
  a = (int8_T)(b + c);
  if((int8_T)((int8_T)(a ^ b) & (int8_T)(a ^ c)) < 0) {
    sf_debug_overflow_detection(0);
  }
  return a;
}
static uint8_T m0_c1_u8_pre_incr__(uint8_T *b)
{
  *b = m0_c1_u8_add__(*b, 1);
  return *b;
}
static uint8_T m0_c1_u8_add__(uint8_T b, uint8_T c)
{
  uint8_T a;
  a = (uint8_T)(b + c);
  if(a < b) {
    sf_debug_overflow_detection(0);
  }
  return a;
}

static void enter_atomic_m0_c1_s1_ROAD1(void);
static void exit_atomic_m0_c1_s1_ROAD1(void);
static void enter_atomic_m0_c1_s2_ROAD2(void);
static void exit_atomic_m0_c1_s2_ROAD2(void);
static void enter_atomic_m0_c1_s3_ROAD3(void);
static void exit_atomic_m0_c1_s3_ROAD3(void);
static void enter_atomic_m0_c1_s4_ROAD4(void);
static void exit_atomic_m0_c1_s4_ROAD4(void);
static void enter_atomic_m0_c1_s6_start(void);
static void exit_atomic_m0_c1_s6_start(void);
static void broadcast_m0_c1_e9_event(void);
void auto_netcon_sfun_c1(void)
{
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,0);
  if(chartInstance.State.is_active_auto_netcon_sfun_c1 == 0) {
    _SFD_CC_CALL(CHART_ENTER_ENTRY_FUNCTION_TAG,0);
    chartInstance.State.is_active_auto_netcon_sfun_c1 = 1;
    _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
    _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,1);
    _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,1);
    _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,1);
    chartInstance.LocalData.m0_c1_d3_count = 0;
    _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,1,0);
    chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0, 0, 1,
     0)] = 0;
    _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,1,1);
    chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1, 0, 1,
     0)] = 0;
    _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,1,2);
    _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,1);
    _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,1);
    enter_atomic_m0_c1_s6_start();
  } else {
    switch(chartInstance.State.is_auto_netcon_sfun_c1) {
     case IN_m0_c1_s1_ROAD1:
      CV_CHART_EVAL(0,0,1);
      _SFD_CS_CALL(STATE_ENTER_DURING_FUNCTION_TAG,5);
      _SFD_CCS_CALL(STATE_DURING_COVERAGE_TAG,5,0);
      _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,10);
      if(CV_TRANSITION_EVAL(10,
        _SFD_CCP_CALL(10,0,(chartInstance.LocalData.m0_c1_d4_i == 1)))) {
        if(sf_debug_transition_conflict_check_enabled()) {
          unsigned int transitionList[2];
          unsigned int numTransitions=1;
          transitionList[0] = 10;
          sf_debug_transition_conflict_check_begin();
          if(chartInstance.LocalData.m0_c1_d4_i < 1) {
            transitionList[numTransitions] = 9;
            numTransitions++;
          }
          sf_debug_transition_conflict_check_end();
          if(numTransitions>1) {
            _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
          }
        }
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,10);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,10);
        _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,10);
        chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1, 0,
         1, 0)] = 1;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,0);
        chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0, 0,
         1, 0)] = 1;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,1);
        output(&chartInstance.LocalData.m0_c1_d2_convec[0]);
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,2);
        OutputData_m0_c1_d8_outdp = 1.0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,3);
        chartInstance.LocalData.m0_c1_d6_j = 0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,4);
        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,10);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,10);
        exit_atomic_m0_c1_s1_ROAD1();
        enter_atomic_m0_c1_s3_ROAD3();
      } else {
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,9);
        if(CV_TRANSITION_EVAL(9,
          _SFD_CCP_CALL(9,0,(chartInstance.LocalData.m0_c1_d4_i < 1)))) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,9);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,9);
          _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,9);
          chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1,
           0, 1, 0)] = 1;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,9,0);
          chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0,
           0, 1, 0)] = 1;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,9,1);
          output(&chartInstance.LocalData.m0_c1_d2_convec[0]);
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,9,2);
          OutputData_m0_c1_d8_outdp = 1.0;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,9,3);
          _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,9);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,9);
          exit_atomic_m0_c1_s1_ROAD1();
          enter_atomic_m0_c1_s1_ROAD1();
        }
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
      break;
     case IN_m0_c1_s2_ROAD2:
      CV_CHART_EVAL(0,0,2);
      _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,0);
      if(CV_TRANSITION_EVAL(0,
        _SFD_CCP_CALL(0,0,(chartInstance.LocalData.m0_c1_d4_i == 5)))) {
        if(sf_debug_transition_conflict_check_enabled()) {
          unsigned int transitionList[2];
          unsigned int numTransitions=1;
          transitionList[0] = 0;
          sf_debug_transition_conflict_check_begin();
          if(chartInstance.LocalData.m0_c1_d4_i < 5) {
            transitionList[numTransitions] = 12;
            numTransitions++;
          }
          sf_debug_transition_conflict_check_end();
          if(numTransitions>1) {
            _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
          }
        }
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,0);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,0);
        _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,0);
        chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1, 0,
         1, 0)] = 1;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,0,0);
        chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0, 0,
         1, 0)] = 1;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,0,1);
        output(&chartInstance.LocalData.m0_c1_d2_convec[0]);
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,0,2);
        OutputData_m0_c1_d8_outdp = 1.0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,0,3);
        chartInstance.LocalData.m0_c1_d6_j = 0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,0,4);
        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,0);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,0);
        exit_atomic_m0_c1_s2_ROAD2();
        enter_atomic_m0_c1_s4_ROAD4();
      } else {
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,12);
        if(CV_TRANSITION_EVAL(12,
          _SFD_CCP_CALL(12,0,(chartInstance.LocalData.m0_c1_d4_i < 5)))) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,12);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,12);
          _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,12);
          chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1,
           0, 1, 0)] = 1;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,12,0);
          chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0,
           0, 1, 0)] = 1;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,12,1);
          output(&chartInstance.LocalData.m0_c1_d2_convec[0]);
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,12,2);
          OutputData_m0_c1_d8_outdp = 1.0;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,12,3);
          _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,12);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,12);
          exit_atomic_m0_c1_s2_ROAD2();
          enter_atomic_m0_c1_s2_ROAD2();
        }
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
      break;
     case IN_m0_c1_s3_ROAD3:
      CV_CHART_EVAL(0,0,3);
      _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,11);
      if(CV_TRANSITION_EVAL(11,
        _SFD_CCP_CALL(11,0,(chartInstance.LocalData.m0_c1_d6_j == 2)))) {
        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(chartInstance.LocalData.m0_c1_d6_j < 2) {
            transitionList[numTransitions] = 2;
            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_BEFORE_COND_ACTION_TAG,11);
        m0_c1_u16_pre_incr__(&chartInstance.LocalData.m0_c1_d3_count);
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,11,0);
        chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1, 0,
         1, 0)] = 0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,11,1);
        chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0, 0,
         1, 0)] = 0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,11,2);
        output(&chartInstance.LocalData.m0_c1_d2_convec[0]);
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,11,3);
        OutputData_m0_c1_d8_outdp = 0.0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,11,4);
        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,11);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,11);
        exit_atomic_m0_c1_s3_ROAD3();
        enter_atomic_m0_c1_s6_start();
      } else {
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,2);
        if(CV_TRANSITION_EVAL(2,
          _SFD_CCP_CALL(2,0,(chartInstance.LocalData.m0_c1_d6_j < 2)))) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,2);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,2);
          _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,2);
          chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 1,
           0, 1, 0)] = 0;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,2,0);
          chartInstance.LocalData.m0_c1_d2_convec[_SFD_ARRAY_BOUNDS_CHECK(6, 0,
           0, 1, 0)] = 0;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,2,1);
          output(&chartInstance.LocalData.m0_c1_d2_convec[0]);
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,2,2);
          OutputData_m0_c1_d8_outdp = 0.0;
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,2,3);
          _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,2);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,2);
          exit_atomic_m0_c1_s3_ROAD3();
          enter_atomic_m0_c1_s3_ROAD3();
        }
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
      break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -