Main Content

生成コードの要件へのリンク

生成コードをモデル要素の要件にリンクします。コンフィギュレーション パラメーターを使用して、要件の説明をコメントして生成コードに含めるかどうかを指定できます。

モデルを開く

モデル CodeRequirementsLinks を開きます。モデルには Simulink® 要素と Stateflow® 要素が、関連付けられている要件と共に含まれています。

model='CodeRequirementsLinks';
open_system(model);

要件の表示

モデルにリンクされた要件は、要件エディターを使用して表示できます。Simulink エディターで要件マネージャー アプリを開きます。[要件] タブで [要件エディター] をクリックします。モデル オブジェクトに固有の要件は、オブジェクトのコンテキスト メニューを使用して表示できます。要素を右クリックして [要件][[外向きリンク] ダイアログを開く] を選択します。要件を表示するには、以下のコマンドを使用します。

1. DiscretePulseGenerator ブロックの要件を表示するには、DiscretePulseGenerator ブロックを右クリックし、[要件][[外向きリンク] ダイアログを開く] を選択して外向きリンク エディターを開きます。外向きリンク エディターを使用して、要件のトレーサビリティ リンクを作成、編集、削除できます。

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

2. 要件を表示するには、"Signal Builder" ブロックをダブルクリックして開きます。

sigeblock='CodeRequirementsLinks/Signal Editor';
open_system(sigeblock)

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(sigeblock);

コンフィギュレーション パラメーターの設定

[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] の [コメント] ペインを開きます。コンフィギュレーション パラメーター設定を表示します。

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

コードの生成

モデルのコードを生成します。

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

Build Summary

Top model targets built:

Model                  Action                        Rebuild Reason                                    
=======================================================================================================
CodeRequirementsLinks  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 19.534s

要件を含んでいるコメントが生成コードに表示されます。すべての要件を表示するには、ハイパーリンク付きの要件コメントをクリックします。

coder.example.extractLines('CodeRequirementsLinks_ert_rtw/CodeRequirementsLinks.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;
  }

関連するトピック