Main Content

コード インターフェイスのパッケージ化

説明

生成された C または C++ コード インターフェイスのパッケージ化を選択します。

カテゴリ:[コード生成]、[インターフェイス]

設定

既定の設定:[言語]パラメーターが[C]に設定されている場合は[再利用できない関数][言語][C++]に設定されている場合は[C++ クラス]

C++ class

モデル コードへの C++ クラス インターフェイスを生成します。生成されたインターフェイスは必要なモデル データを C++ クラスの属性にカプセル化し、モデル エントリ ポイント関数を C++ クラスのメソッドにカプセル化します。

再利用できない関数

再利用できないコードを生成します。モデル データ構造体はモデル コードでモデル エントリ ポイント関数によって静的に割り当てられて直接アクセスされます。

再利用可能な関数

次のような、再利用可能で再呼び出し可能なマルチインスタンス コードを生成します。

  • GRT ベースのモデルでは、生成されたmodel.cソース ファイルに、モデルのそれぞれのインスタンスに対しモデルのデータを動的に割り当てる割り当て関数が格納されています。ERT ベースのモデルでは、[モデルの初期化に動的メモリ割り当てを使用]パラメーターを使用して、割り当て関数が生成されるかどうかを制御できます。

  • 生成コードでは、リアルタイム モデルのデータ構造体をmodel_stepなどのモデル エントリ ポイント関数の引数として参照渡しします。

  • リアルタイム モデルのデータ構造体は、model.hヘッダー ファイルと共にエクスポートされます。

ERT ベースのモデルの場合は、[ルートレベル I/O を以下として渡す]パラメーターを使用して、ルートレベルの入力および出力引数を再利用可能なモデルのエントリポイント関数に渡す方法を制御できます。それらは関数に渡されるリアルタイム モデルのデータ構造体に含めることができ、個々の引数として、または入力構造体と出力構造体への参照として渡されます。

ヒント

  • エントリ ポイントはmodel.hでエクスポートされます。エントリポイント関数を手書きコードから呼び出すには、#include model.h命令をコードに追加します。

  • [再利用可能な関数]を選択すると、コード ジェネレーターはリアルタイム モデル オブジェクト (model_M) へのポインターを生成します。

  • [再利用可能な関数]を選択すると、コード ジェネレーターは、コンパイルするが再呼び出し可能でないコードを生成できます。たとえば、信号、DWork 構造体またはパラメーター データがAuto以外のストレージ クラスをもつ場合、グローバル データ構造体が生成されます。

依存関係

  • [C++ クラス][言語]パラメーターがC++に設定されている場合にのみ使用可能です。

  • [再利用可能な関数]または[C++ クラス]を選択すると[マルチインスタンス コードのエラーの診断]パラメーターが有効になります。

  • ERT ベースのシステム ターゲット ファイルの場合、[再利用可能な関数]を選択すると[ルートレベル I/O を以下として渡す]パラメーターおよび[モデルの初期化に動的メモリ割り当てを使用]パラメーターが有効になります。

  • [クラシック コール インターフェイス]パラメーターを有効にするには、[再利用できない関数]を選択します。

  • ERT ベースのシステム ターゲット ファイルの場合、[C++ クラス]を選択すると、モデル クラス インターフェイスをカスタマイズするための次のモデル コンフィギュレーション制御が有効になります。

    • [データ メンバーの可視性/アクセス制御]サブペイン

    • [デストラクターの生成]パラメーターおよび[Model ブロックのインスタンス化に動的メモリ割り当てを使用]パラメーター

  • ERT ベースのシステム ターゲット ファイルでは、次を実行する場合、[再利用可能な関数]を静的ert_main.cモジュールと一緒に選択できます。

    • [ルートレベル I/O を以下として渡す]パラメーターを[モデル データ構造体の一部]に設定する。

    • [モデルの初期化に動的メモリ割り当てを使用]パラメーターを選択する。

  • ERT ベースのシステム ターゲット ファイルについて、次の場合は[再利用可能な関数]を選択できません。

    • 関数model_stepのプロトタイプをカスタマイズする

    • サブシステムの[別々のデータをもつ関数]ブロック パラメーターを選択する

    • 次のようなサブシステムを使用する

      • ソースを共有する複数の端子をもつ

      • サブシステムの複数のインスタンスが使用する 1 つの端子があり、また、サンプル時間、データ型、実数/複素数、フレーム ステータス、次元がインスタンス全体で異なっている。

      • グローバル信号としてマークされた出力をもつ

      • 各インスタンスに対し、名前またはパラメーター設定が異なる同じブロックを含んでいる

  • [再利用可能な関数]を選択する場合、Function-Call Subsystem のために生成されたコードは変更されません。

コマンド ライン情報

パラメーター:CodeInterfacePackaging
型:文字ベクトル
値:'C++ class'|'Nonreusable function'|'Reusable function'
既定の設定:TargetLang'C'に設定された場合は'Nonreusable function'TargetLang'C++'に設定された場合は'C++ class'

推奨設定

アプリケーション 設定
デバッグ 影響なし
トレーサビリティ 影響なし
効率性 [再利用可能な関数]または[C++ class]
安全対策 影響なし

参考

関連するトピック