Привязка сгенерированного кода к требованиям

Соедините сгенерированный код с требованиями к элементам модели. Используя параметры конфигурации, можно задать, включать ли описание требований в качестве комментариев в сгенерированный код.

Откройте модель

Откройте rtwdemo_requirements модель. Модель содержит элементы Simulink ® и Stateflow ® со связанными требованиями.

model='rtwdemo_requirements';
open_system(model);

Просмотр требований

Просмотреть требования, связанные с моделью, можно с помощью редактора требований. В редакторе Simulink откройте приложение Requirements Manager на вкладке Requirements, нажмите Requirements Editor. Можно просмотреть требования, специфичные для объектов модели, с помощью контекстного меню объекта. Щелкните правой кнопкой мыши элемент и выберите Requirements > Open Outgoing Links диалоговое окно. Чтобы просмотреть требования, используйте следующие команды:

1. Просмотр требований к DiscretePulseGenerator блокируйте, щелкните правой кнопкой мыши по DiscretePulseGenerator Блоком и выберите «Требования» > «Открыть исходящие ссылки», чтобы открыть Редактор исходящих ссылок. Используя Редактор исходящих ссылок, можно создавать, редактировать и удалять ссылки трассируемости требований.

clockblock='rtwdemo_requirements/clock';
clockblockh=get_param(clockblock,'handle');
rmi('edit',clockblockh);

2. Чтобы просмотреть требования, откройте блок Signal Builder, дважды щелкнув по нему мышью.

sigbblock='rtwdemo_requirements/Signal Builder';
open_system(sigbblock)

3. Чтобы просмотреть требования к состоянию Stateflow ®, откройте Редактор исходящих ссылок.

state=find(sfroot,'-isa','Stateflow.State','-and','Tag','req_state');
rmi('edit',state.id);

4. Чтобы просмотреть требования к переходу Stateflow, откройте Редактор исходящих ссылок.

trans=find(sfroot,'-isa','Stateflow.Transition','-and','Tag','req_trans');
rmi('edit',trans.id);

5. Чтобы просмотреть требования к функции Stateflow, откройте Редактор исходящих ссылок.

func=find(sfroot,'-isa','Stateflow.Function','-and','Tag','req_function');
rmi('edit',func.id);

Закройте открытые окна.

close_system(sigbblock);

Установите параметры конфигурации

Откройте диалоговое окно Параметры конфигурации Генерация кода > панель Комментарии. Просмотрите настройки параметров конфигурации.

model = bdroot;
configSet = getActiveConfigSet(model);
openDialog(configSet);

Сгенерируйте код

Сгенерируйте код для модели.

slbuild('rtwdemo_requirements')
### Starting build procedure for: rtwdemo_requirements
### Successful completion of build procedure for: rtwdemo_requirements

Build Summary

Top model targets built:

Model                 Action                       Rebuild Reason                                    
=====================================================================================================
rtwdemo_requirements  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 10.54s

В сгенерированном коде просмотрите комментарии, содержащие требования. Чтобы просмотреть все требования, щелкните гиперссылку комментария требования.

rtwdemodbtype('rtwdemo_requirements_ert_rtw/rtwdemo_requirements.c',...
    '/* Function for Chart:','return result;',1,0);
/* Function for Chart: '<Root>/rebound_elimination' */
static real_T rebound_fcn(real_T prev_in, real_T prev_out, real_T curr_in)
{
  real_T result;

  /* Graphical Function 'rebound_fcn': '<S2>:2':
   *  1. Result Computation
   */
  /* Transition: '<S2>:4' */
  if (prev_in == curr_in) {
    /* Transition: '<S2>:5' */
    result = curr_in;
  } else {
    /* Transition: '<S2>:6' */
    /* Transition: '<S2>:7' */
    result = prev_out;
  }

Закройте модель

rtwdemoclean;
close_system('rtwdemo_requirements',0);

Похожие темы