Main Content

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

C++ クラス インターフェイス コントロールのサポート

この節では、カスタムの組み込みターゲットを設定して C++ クラス インターフェイス コントロールをサポートする方法を説明します。説明されている変更を行わないと、[C++ クラス] のコード インターフェイスのパッケージ化を使用してモデル コードへの C++ クラス インターフェイスの生成および構成を実行できません。C++ クラス インターフェイス コントロールの詳細については、Interactively Configure C++ Interface (Embedded Coder)を参照してください。

C++ クラス インターフェイス コントロールとカスタム ターゲットについて

C++ クラス インターフェイス コントロールをサポートするための要件を次に示します。

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

C++ クラス インターフェイス コントロール準拠の宣言

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

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

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

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

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

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

ターゲット コンフィギュレーション パラメーター CPPClassGenComplianton に設定されている場合、[C++ クラス] のコード インターフェイスのパッケージ化を使用してモデル コードへの C++ クラス インターフェイスの生成および構成を実行できます。

カスタムの静的メイン プログラムでの C++ クラス インターフェイス コントロールのサポートの提供

モデルの [C++ クラス] コード インターフェイスのパッケージ化を選択すると、モデル コンフィギュレーション パラメーター [メイン プログラム例の生成] が有効になります。このパラメーターを選択する場合、コード ジェネレーターはメイン プログラムの例 ert_main.cpp を作成します。生成された例のメイン プログラムは、モデル データを宣言して C++ クラス インターフェイスで構成されたモデル ステップ メソッドを呼び出し、生成コードの配布方法を示します。

ビルド プロセスをカスタマイズし、例のメイン プログラムの生成と追加を無効にする場合は、関数 setTargetProvidesMain (Embedded Coder) を参照してください。例のメイン生成を無効にすると、カスタムのメイン プログラムを追加できるようになります。

関連するトピック