Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Stateflow Atomic サブチャートからの再利用可能なコードの生成

リンクされている Atomic サブチャートでの再利用可能なコードの生成

同じライブラリからリンクされている Atomic サブチャートのコード生成パラメーターを指定するには、以下のようにします。

  1. Atomic サブチャートをもつライブラリ モデルを開きます。

  2. ライブラリロックを解除。

  3. ライブラリ チャートを右クリックし、[ブロック パラメーター] を選択します。

  4. このダイアログ ボックスで、以下のパラメーターを指定します。

    1. [メイン] タブで、パラメーター [Atomic サブシステムとして扱う] を選択します。

    2. [コード生成] タブで、パラメーター [関数のパッケージ化][再利用可能な関数] に設定します。

    3. [ファイル名オプション][ユーザー指定] に設定します。

    4. [ファイル名] で、ファイルの名前を拡張子なしで入力します。

    5. [OK] をクリックして変更を適用します。

  5. (オプション) Atomic サブチャート用に生成された関数名をカスタマイズします。

    1. モデル コンフィギュレーション パラメーター [システム ターゲット ファイル][ert.tlc] に設定します。

    2. モデル コンフィギュレーション パラメーター [サブシステムのメソッド] に、以下の命名規則トークンの組み合わせを使用して関数名の形式を指定します。

      • $R: ルート モデル名

      • $F: Atomic サブチャート用のインターフェイスのタイプ

      • $N: ブロック名

      • $H: サブシステム インデックス

      • $M: 名前マングリング テキスト

    3. [OK] をクリックして変更を適用します。

モデル用にコードを生成すると、同じライブラリからリンクされている Atomic サブチャートのコードが別のファイルに保存されます。

リンクされていない Atomic サブチャートでの再利用可能なコードの生成

リンクされていない Atomic サブチャートでコード生成パラメーターを指定するには、以下のようにします。

  1. チャートで Atomic サブチャートを右クリックし、[プロパティ] を選択します。

  2. ダイアログ ボックスで、以下のプロパティを指定します。

    1. プロパティ [コード生成関数のパッケージ化][再利用可能な関数] に設定します。

    2. [コード生成ファイル名オプション][ユーザー指定] に設定します。

    3. コード生成の [ファイル名] で、ファイルの名前を拡張子なしで入力します。

    4. [OK] をクリックして変更を適用します。

  3. (オプション) Atomic サブチャート用に生成された関数名をカスタマイズします。

    1. モデル コンフィギュレーション パラメーター [システム ターゲット ファイル][ert.tlc] に設定します。

    2. モデル コンフィギュレーション パラメーター [サブシステムのメソッド] に、以下の命名規則トークンの組み合わせを使用して関数名の形式を指定します。

      • $R: ルート モデル名

      • $F: Atomic サブチャート用のインターフェイスのタイプ

      • $N: ブロック名

      • $H: サブシステム インデックス

      • $M: 名前マングリング テキスト

    3. [OK] をクリックして変更を適用します。

モデル用にコードを生成すると、Atomic サブチャートのコードが別のファイルに保存されます。詳細については、Atomic サブチャートからのコードの生成を参照してください。

単体テストに再利用可能なコードの生成

ステートの Atomic サブチャートへの変換

ステート A を Atomic サブチャートに変換するには、ステートを右クリックして [グループとサブチャート][Atomic サブチャート] を選択します。ステート A が Atomic サブチャートに変わります。

Atomic サブチャートでのスタンドアロンの C ファイルの設定

  1. A のプロパティのダイアログ ボックスを開きます。

  2. プロパティ [コード生成関数のパッケージ化][再利用可能な関数] に設定します。

  3. [コード生成ファイル名オプション][ユーザー指定] に設定します。

  4. [コード生成ファイル名] で、saturator をファイル名に入力します。

  5. [OK] をクリックします。

コード生成レポートの設定

  1. モデル コンフィギュレーション パラメーター [システム ターゲット ファイル][ert.tlc] に設定します。

  2. モデル コンフィギュレーション パラメーター [コード生成レポートを作成] および [レポートを自動的に開く] を選択します。

  3. パラメーター [コードからモデルに] および [モデルからコードに] を選択します。

  4. [適用] をクリックします。

生成される関数名のカスタマイズ

  1. モデル コンフィギュレーション パラメーター [サブシステムのメソッド] を形式スキーム $R$N$M$F に設定します。ここで、

    • $R はルート モデル名。

    • $N はブロック名。

    • $M はマングル トークン。

    • $F は Atomic サブチャート用のインターフェイス関数のタイプ。

    詳細については、Subsystem methods (Embedded Coder)を参照してください。

  2. [適用] をクリックします。

Atomic サブチャートのみで使用するコードの生成

モデルのコードを生成するには、Ctrl + B キーを押します。表示されるコード生成レポートに、Atomic サブチャート用に生成されたコードをもつ別のファイルが表示されます。

saturator.c のコードを点検するには、レポートのハイパーリンクをクリックすると次のコードが表示されます。

28 行目は Atomic サブチャート用に生成された during 関数が名前 ex_reuse_states_A_during をもつことを示します。この名前は、[サブシステムのメソッド] 用に指定された形式化スキーム $R$N$M$F に従います。

  • $R はルート モデル名の ex_reuse_states

  • $N はブロック名の A

  • $M は空のマングル トークン。

  • $F は Atomic サブチャート用のインターフェイス関数のタイプ during

メモ

行番号は、実際のコード生成レポートに表示される行番号とは異なる可能性があります。

Atomic サブシステムのファイルのパッケージ化 (コードのみ)

このモデルは Atomic サブシステムを独自のソース ファイルに分割する方法を説明します。サブシステムが Atomic サブシステムとして指定されると、Subsystem の [ブロック パラメーター] ダイアログ ボックスの [コード生成] タブで、[関数のパッケージ化] パラメーターを使用して、生成したコードでサブシステムを表す方法を指定できます。

  • Inline: インライン化された関数

  • Function: I/O がグローバル データとして渡される関数

  • Reusable function: I/O が関数の引数として渡される関数

  • Auto:コンテキストに基づいて Simulink Coder により最適化

FunctionReusable function オプションにより、[関数名] および [ファイル名] で関数とファイル名をそれぞれ指定できます。モデル rtwdemo_filepart で、SS1 サブシステムは関数名 myfun およびファイル名 myfileReusable function として設定されます。

open_system('rtwdemo_filepart')

この機能はサブシステムのコードを分割するだけです。データは親モデルで宣言され、所有されます。完全なシステムのカプセル化 (データや関数など) では、モデル参照を使用します。

bdclose('rtwdemo_filepart');

関連するトピック