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)を参照してください。例のメイン生成を無効にすると、カスタムのメイン プログラムを追加できるようになります。

関連するトピック