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

📄 bluetooth_lib2_sfun_c4.c

📁 在matlab的simulink中实现的无线蓝牙模块
💻 C
📖 第 1 页 / 共 5 页
字号:
                    if(numTransitions>1) {
                      _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
                    }
                  }
                  _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,32);
                  _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,32);
                  _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,32);
                  _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,6);
                  if(CV_TRANSITION_EVAL(6,
                    _SFD_CCP_CALL(6,0,(InputData_m1_c4_d8_SEQN !=
                      chartInstance->LocalData.m1_c4_d2_SEQN_old)))
                   != 0) {
                    _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,6);
                    _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,6);
                    _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,6);
                    _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,15);
                    if(CV_TRANSITION_EVAL(15,
                      !(_SFD_CCP_CALL(15,0,(InputData_m1_c4_d9_CRC_OK)) != 0))
                     != 0) {
                      if(sf_debug_transition_conflict_check_enabled()) {
                        unsigned int transitionList[2];
                        unsigned int numTransitions=1;
                        transitionList[0] = 15;
                        sf_debug_transition_conflict_check_begin();
                        if(InputData_m1_c4_d9_CRC_OK != 0.0) {
                          transitionList[numTransitions] = 8;
                          numTransitions++;
                        }
                        sf_debug_transition_conflict_check_end();
                        if(numTransitions>1) {
                          _SFD_TRANSITION_CONFLICT(&(transitionList[0]),numTransitions);
                        }
                      }
                      _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,15);
                      _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,15);
                      _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,15);
                      goto sf_label_5;
                    } else {
                      _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,8);
                      if(CV_TRANSITION_EVAL(8,
                        _SFD_CCP_CALL(8,0,(InputData_m1_c4_d9_CRC_OK))) != 0) {
                        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,8);
                        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,8);
                        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,8);
                        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,10);
                        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,10);
                        _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,10);
                        _SFD_CHART_CALL(EVENT_OBJECT,EVENT_BEFORE_BROADCAST_TAG,0);
                        if(chartInstance->chartInfo.chartInitialized==false) {
                          sf_mex_error_message("Cannot broadcast function call output event 'Latch_Payload' during initialization. "
                           "You have set 'Execute At Initialization' flag on the chart properties "
                           "that caused the chart to be executed at startup time. During startup, "
                           "function call output event broadcast is disallowed.");
                        }
                        ssCallSystem(chartInstance->S,0);
                        if(sf_mex_get_halt_simulation())
                        sf_mex_long_jump_on_error(2);
                        _SFD_CHART_CALL(EVENT_OBJECT,EVENT_AFTER_BROADCAST_TAG,0);
                        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,0);
                        m1_c4_s13_Accept_Payload(chartInstance);
                        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,10,1);
                        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,10);
                        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,10);
                        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,19);
                        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,19);
                        _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,19);
                        chartInstance->LocalData.m1_c4_d1_ARQN = 1.0;
                        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,19,0);
                        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,19);
                        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,19);
                        goto sf_label_6;
                      }
                    }
                  }
                }
              } else {
                goto sf_label_6;
              }
            }
          } else {
            goto sf_label_6;
          }
        }
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,28);
        if(CV_TRANSITION_EVAL(28,
          !(_SFD_CCP_CALL(28,0,(InputData_m1_c4_d7_DM_DH_DV)) != 0)) != 0) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,28);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,28);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,28);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,2);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,2);
          _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,2);
          _SFD_CHART_CALL(EVENT_OBJECT,EVENT_BEFORE_BROADCAST_TAG,0);
          if(chartInstance->chartInfo.chartInitialized==false) {
            sf_mex_error_message("Cannot broadcast function call output event 'Latch_Payload' during initialization. "
             "You have set 'Execute At Initialization' flag on the chart properties "
             "that caused the chart to be executed at startup time. During startup, "
             "function call output event broadcast is disallowed.");
          }
          ssCallSystem(chartInstance->S,0);
          if(sf_mex_get_halt_simulation()) sf_mex_long_jump_on_error(2);
          _SFD_CHART_CALL(EVENT_OBJECT,EVENT_AFTER_BROADCAST_TAG,0);
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,2,0);
          m1_c4_s13_Accept_Payload(chartInstance);
          _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,2,1);
          _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,2);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,2);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,34);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,34);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,34);
        }
        goto sf_label_6;
        sf_label_4:;
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,21);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,21);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,21);
        sf_label_5:;
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,5);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,5);
        _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,5);
        m1_c4_s14_Reject_Payload(chartInstance);
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,5,0);
        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,5);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,5);
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,36);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,36);
        _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,36);
        chartInstance->LocalData.m1_c4_d1_ARQN = 0.0;
        _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,36,0);
        _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,36);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,36);
        _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,0);
        _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,0);
        _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,0);
        sf_label_6:;
      } else {
        _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,1);
        if(CV_TRANSITION_EVAL(1,
          _SFD_CCP_CALL(1,0,(InputData_m1_c4_d6_Packet_Type == 13.0))) != 0) {
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,1);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,1);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,1);
          exit_atomic_m1_c4_s12_Unknown_Packet_Type(chartInstance);
          _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,12);
          _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,12,0);
          chartInstance->State.is_bluetooth_lib2_sfun_c4 = IN_m1_c4_s2_SCORT;
          _SFD_CS_CALL(STATE_ACTIVE_TAG,12);
          _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,12);
          _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,14);
          _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,14);
          _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,14);
          _SFD_CT_CALL(TRANSITION_BEFORE_PROCESSING_TAG,17);
          if(CV_TRANSITION_EVAL(17,
            _SFD_CCP_CALL(17,0,(InputData_m1_c4_d5_Slot_OK))) != 0) {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,17);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,17);
            _SFD_CT_CALL(TRANSITION_BEFORE_COND_ACTION_TAG,17);
            _SFD_CHART_CALL(EVENT_OBJECT,EVENT_BEFORE_BROADCAST_TAG,0);
            if(chartInstance->chartInfo.chartInitialized==false) {
              sf_mex_error_message("Cannot broadcast function call output event 'Latch_Payload' during initialization. "
               "You have set 'Execute At Initialization' flag on the chart properties "
               "that caused the chart to be executed at startup time. During startup, "
               "function call output event broadcast is disallowed.");
            }
            ssCallSystem(chartInstance->S,0);
            if(sf_mex_get_halt_simulation()) sf_mex_long_jump_on_error(2);
            _SFD_CHART_CALL(EVENT_OBJECT,EVENT_AFTER_BROADCAST_TAG,0);
            _SFD_CCT_CALL(TRANSITION_CONDITION_ACTION_COVERAGE_TAG,17,0);
            _SFD_CT_CALL(TRANSITION_AFTER_COND_ACTION_TAG,17);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,17);
            enter_atomic_m1_c4_s3_Slot_pair_1(chartInstance);
            enter_atomic_m1_c4_s5_Good(chartInstance);
          } else {
            _SFD_CT_CALL(TRANSITION_ACTIVE_TAG,31);
            _SFD_CT_CALL(TRANSITION_WHEN_VALID_TAG,31);
            _SFD_CT_CALL(TRANSITION_INACTIVE_TAG,31);
            enter_atomic_m1_c4_s3_Slot_pair_1(chartInstance);
            enter_atomic_m1_c4_s4_Bad(chartInstance);
          }
        }
      }
      _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,6);
      break;
     default:
      CV_CHART_EVAL(0,0,0);
      break;
    }
  }
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,0);
}

static void
enter_atomic_m1_c4_s3_Slot_pair_1(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,9);
  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,9,0);
  chartInstance->State.is_m1_c4_s2_SCORT = IN_m1_c4_s3_Slot_pair_1;
  _SFD_CS_CALL(STATE_ACTIVE_TAG,9);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,9);
}

static void
exit_atomic_m1_c4_s3_Slot_pair_1(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,9);
  _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,9,0);
  chartInstance->State.is_m1_c4_s2_SCORT = IN_NO_ACTIVE_CHILD;
  _SFD_CS_CALL(STATE_INACTIVE_TAG,9);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,9);
}

static void
exit_internal_m1_c4_s3_Slot_pair_1(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  switch(chartInstance->State.is_m1_c4_s3_Slot_pair_1) {
   case IN_m1_c4_s4_Bad:
    CV_STATE_EVAL(9,1,1);
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,8);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,8,0);
    chartInstance->State.is_m1_c4_s3_Slot_pair_1 = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,8);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,8);
    break;
   case IN_m1_c4_s5_Good:
    CV_STATE_EVAL(9,1,2);
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,2);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,2,0);
    chartInstance->State.is_m1_c4_s3_Slot_pair_1 = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,2);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
    break;
   default:
    CV_STATE_EVAL(9,1,0);
    break;
  }
}

static void enter_atomic_m1_c4_s4_Bad(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,8);
  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,8,0);
  chartInstance->State.is_m1_c4_s3_Slot_pair_1 = IN_m1_c4_s4_Bad;
  _SFD_CS_CALL(STATE_ACTIVE_TAG,8);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,8);
}

static void enter_atomic_m1_c4_s5_Good(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,2);
  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,2,0);
  chartInstance->State.is_m1_c4_s3_Slot_pair_1 = IN_m1_c4_s5_Good;
  _SFD_CS_CALL(STATE_ACTIVE_TAG,2);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,2);
}

static void
enter_atomic_m1_c4_s6_Slot_pair_2(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  _SFD_CS_CALL(STATE_ENTER_ENTRY_FUNCTION_TAG,4);
  _SFD_CCS_CALL(STATE_ENTRY_COVERAGE_TAG,4,0);
  chartInstance->State.is_m1_c4_s2_SCORT = IN_m1_c4_s6_Slot_pair_2;
  _SFD_CS_CALL(STATE_ACTIVE_TAG,4);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
}

static void
exit_atomic_m1_c4_s6_Slot_pair_2(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,4);
  _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,4,0);
  chartInstance->State.is_m1_c4_s2_SCORT = IN_NO_ACTIVE_CHILD;
  _SFD_CS_CALL(STATE_INACTIVE_TAG,4);
  _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
}

static void
exit_internal_m1_c4_s6_Slot_pair_2(SFbluetooth_lib2_sfun_c4InstanceStruct
 *chartInstance)
{
  switch(chartInstance->State.is_m1_c4_s6_Slot_pair_2) {
   case IN_m1_c4_s7_Bad:
    CV_STATE_EVAL(4,1,1);
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,5);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,5,0);
    chartInstance->State.is_m1_c4_s6_Slot_pair_2 = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,5);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,5);
    break;
   case IN_m1_c4_s8_Good:
    CV_STATE_EVAL(4,1,2);
    _SFD_CS_CALL(STATE_ENTER_EXIT_FUNCTION_TAG,13);
    _SFD_CCS_CALL(STATE_EXIT_COVERAGE_TAG,13,0);
    chartInstance->State.is_m1_c4_s6_Slot_pair_2 = IN_NO_ACTIVE_CHILD;
    _SFD_CS_CALL(STATE_INACTIVE_TAG,13);
    _SFD_CS_CALL(EXIT_OUT_OF_FUNCTION_TAG,13);
    break;
   default:
    CV_STATE_EVAL(4,1,0);

⌨️ 快捷键说明

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