生成コードの要件へのリンク
生成コードをモデル要素の要件にリンクします。コンフィギュレーション パラメーターを使用して、要件の説明をコメントして生成コードに含めるかどうかを指定できます。
モデルを開く
モデル 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 49.666s
要件を含んでいるコメントが生成コードに表示されます。すべての要件を表示するには、ハイパーリンク付きの要件コメントをクリックします。
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; }
関連するトピック
- View and Link Requirements in Simulink (Requirements Toolbox)