Main Content

C 関数プロトタイプ コントロールのサポート

この節では、カスタムの組み込みターゲットを設定して関数プロトタイプ コントロールをサポートする方法を説明します。説明されている変更を行わないと、エントリポイント関数インターフェイスをカスタマイズするインターフェイスを使用できません。

関数プロトタイプ コントロールは、サービス インターフェイスで構成されたコンポーネント モデルではサポートされません。詳細については、Model Code Interfaces (Embedded Coder)およびChoose Code Interface for Code Generation (Embedded Coder)を参照してください。

詳細については、生成された C 関数インターフェイスをモデルのエントリポイント関数用に構成 (Embedded Coder)を参照してください。

C 関数プロトタイプ コントロールとカスタム ターゲットについて

C 関数プロトタイプ コントロールをサポートするための要件を次に示します。

  • システム ターゲット ファイルは ERT システム ターゲット ファイルから派生させなければなりません。

  • C 関数プロトタイプ コントロール準拠の宣言に示すように、システム ターゲット ファイルは C 関数プロトタイプ コントロール準拠を宣言しなければなりません。

  • システム ターゲット ファイルがカスタムの静的メイン プログラムを使用する場合、および既定でない関数プロトタイプ コントロール コンフィギュレーションがモデルに関連付けられている場合、カスタムの静的メイン プログラムでの C 関数プロトタイプ コントロールのサポートに示すように、静的メイン プログラムは、関数プロトタイプが制御する初期化関数とステップ関数を呼び出さなければなりません。

カスタム ターゲットのオプション機能を設定する方法の例については、システム ターゲット ファイルのカスタマイズを参照してください。

C 関数プロトタイプ コントロール準拠の宣言

ターゲットの C 関数プロトタイプ コントロール準拠を宣言するには、ModelStepFunctionPrototypeControlCompliant フラグを設定するコールバック関数を実装して、システム ターゲット ファイルの rtwgensettings 構造体の SelectCallback フィールドにコールバック関数をインストールしなければなりません。コールバック関数は、システム ターゲット ファイル ブラウザーでターゲットが選択されるたびにトリガーされます。たとえば、次のシステム ターゲット ファイル コードは、custom_select_callback_handler という名前の関数 SelectCallback をインストールします。

rtwgensettings.SelectCallback = 'custom_select_callback_handler(hDlg,hSrc)';

関数 SelectCallback への引数 (hDlghSrc) は、コールバック API 関数によって使用されるプライベート データのハンドルです。これらのハンドルは、システム ターゲット ファイル コールバック関数内での使用に制限され、変更されることなく渡されます。

コールバック関数は、次に示すように ModelStepFunctionPrototypeControlCompliant フラグを設定しなければなりません。

slConfigUISetVal(hDlg,hSrc,'ModelStepFunctionPrototypeControlCompliant','on');
slConfigUISetEnabled(hDlg,hSrc,'ModelStepFunctionPrototypeControlCompliant',false);
hSrc.getConfigSet.refreshDialog;

システム ターゲット ファイル コールバック API の詳細については、関数 slConfigUIGetValslConfigUISetEnabled および slConfigUISetVal のリファレンス ページを参照してください。

ModelStepFunctionPrototypeControlCompliant ターゲット コンフィギュレーション パラメーターが on に設定されている場合は、[C Step 関数インターフェイスの設定] ダイアログ ボックスを使用して、レートベース モデルに対して生成された基本レートのステップ関数の関数プロトタイプを制御できます。

カスタムの静的メイン プログラムでの C 関数プロトタイプ コントロールのサポート

ターゲットがカスタムの静的メイン プログラムを使用する場合、および既定でない関数プロトタイプ コントロール コンフィギュレーションがモデルに関連付けられている場合、静的メイン プログラムを更新して、関数プロトタイプが制御する初期化関数とステップ関数を呼び出さなければなりません。そのためには、以下のいずれかを実行します。

  1. モデル データを宣言して、関数プロトタイプが制御する初期化関数とステップ関数を呼び出すように静的メイン プログラムを手動で適用させます。

  2. モデル コンフィギュレーション パラメーター [メイン プログラム例の生成] を選択してメイン プログラムを生成します。生成されたメイン プログラムは、モデル データを宣言して、関数プロトタイプが制御する初期化関数とステップ関数を呼び出します。

関連するトピック