Main Content

sldvruncgvtest

コード生成検証 (CGV) API の起動とモデルの実行

説明

cgvObject = sldvruncgvtest(model, dataFile) は、コード生成検証 (CGV) API メソッドを呼び出し、dataFile 内のすべてのテスト ケースを使用して model を実行します。cgvObjectmodel の実行中に sldvruncgvtest が作成する cgv.CGV オブジェクトです。sldvruncgvtest は、既定で cgvObject の実行モードを 'sim' に設定します。

cgvObject = sldvruncgvtest(model, dataFile, runOpts) は、CGV API メソッドを呼び出し、dataFile 内のテスト ケースを使用して model を実行します。runOpts は、テスト ケースを実行するためのオプションを定義します。runOpts の設定は、cgvObject の構成を決定します。

すべて折りたたむ

sldvruncgvtest の既定の構成オブジェクトを作成し、指定したテスト ケースをモデルの生成コード上で実行します。

モデル参照によるコンポーネントベースのモデル化のモデル例 sldemo_mdlref_basic を開きます。Model ブロック Counter A への入力信号を記録します。

openExample('sldemo_mdlref_basic');
open_system('sldemo_mdlref_basic');
load_system('sldemo_mdlref_counter');
loggedData = sldvlogsignals('sldemo_mdlref_basic/CounterA');

sldvruncgvtest の既定の構成オブジェクトを作成し、CGV API を使用したテスト ケースの実行用にモデルを設定することを許可します。

runOpts = sldvruntestopts('cgv');
runOpts.allowCopyModel = true;

ログ信号を使用して、sldvruncgvtest を最初はシミュレーション モードで、次はソフトウェアインザループ (SIL) モードで実行することにより、CGV API を呼び出し、指定したテスト ケースをモデルの生成コード上で実行します。

cgvObjectSim = sldvruncgvtest('sldemo_mdlref_counter', loggedData, runOpts);
runOpts.cgvConn = 'sil';
cgvObjectSil = sldvruncgvtest('sldemo_mdlref_counter', loggedData, runOpts);

CGV API を使って、最初のテスト ケースの結果を比較します。

simout = cgvObjectSim.getOutputData(1);
silout = cgvObjectSil.getOutputData(1);
[matchNames, ~, mismatchNames, ~ ] = cgv.CGV.compare(simout, silout);
fprintf('\nTest Case:  %d Signals match, %d Signals mismatch', ...
        length(matchNames), length(mismatchNames));

入力引数

すべて折りたたむ

実行する Simulink® モデルの名前またはハンドル。

入力データを含むデータ ファイルまたは構造体の名前。データは次のいずれかの方法で生成できます。

  • Simulink Design Verifier™ ソフトウェアを使用してモデルを解析します。

  • 関数 sldvlogsignals を使用します。

フィールドが sldvruncgvtest のコンフィギュレーションを指定する構造体。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'Description','My new description.'

dataFile から実行するテスト ケース インデックス配列。testIdx[] の場合、sldvruncgvtestdataFile 内のすべてのテスト ケースを実行します。

既定の設定: []

モデルを設定していない場合は、CGV API を使ってテスト ケースを実行するためのモデルを作成して設定するように指定します。

true の場合、CGV API を使ってテスト ケースを実行するように model を設定していない場合は、sldvruncgvtest はモデルをコピーし、コンフィギュレーションを修正してから、コピーしたモデル上でテスト ケースを実行します。

false (既定) の場合、CGV API を使ってテストを実行できなければ、エラーが発生します。

メモ

最上位のモデルまたは参照モデルで、テスト ケースを実行するように設定されていない場合は、allowCopyModeltrue であっても、sldvruncgvtest はモデルをコピーしません。エラーが発生します。

CGV では、ソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) の いずれかの方法を定義します。

  • 'topmodel' (既定)

  • 'modelblock'

CGV の実行モードを指定します。

  • 'sim' (既定)

  • 'sil'

  • 'pil'

メモ

runOpts = sldvruntestopts('cgv') は、各フィールドに既定値が設定された runOpts 構造体を返します。

出力引数

すべて折りたたむ

model の実行中に sldvruncgvtest が作成する cgv.CGV (Embedded Coder) オブジェクト。

sldvruncgvtest は実行されたテスト ケースごとに次のデータを cgvObject 内の Simulink.SimulationOutput オブジェクトの配列に保存します。

フィールド

説明

tout_sldvruncgvtest

シミュレーション時間

xout_sldvruncgvtest

状態のデータ

yout_sldvruncgvtest

出力信号データ

logsout_sldvruncgvtest

次の項目に関する信号のログ データ

  • 出力端子に接続された信号

  • モデルに関するログを作成するように設定された信号

ヒント

sldvruncgvtest を実行するには、Embedded Coder® が必要です。

モデル内に含まれるパラメーターが、CGV API を使ってテスト ケースを実行するように設定されていない場合、sldvruncgvtest は、無効なパラメーターに関する警告をレポートします。このような警告が表示された場合は、次のいずれかを行ってください。

  • 無効なパラメーターを変更して、sldvruncgvtest を再実行します。

  • runOptsallowCopyModeltrue に設定して、sldvruncgvtest を再実行します。sldvruncgvtest は、同じコンフィギュレーションを使ってモデルのコピーを作成し、CGV API を呼び出します。

バージョン履歴

R2010b で導入