getFunctionDefault
説明
は指定された関数カテゴリに対して指定されたプロパティの値を返します。propertyValue
= getFunctionDefault(coderMapObj
,funcCategory
,funcProperty
)
モデルに接続している Embedded Coder ディクショナリがサービス インターフェイス構成を定義している場合、既定の関数インターフェイスを指定することはできません。
例
Simulink モデルのコード マッピングの関数の既定の設定のプログラムによる取得および指定
プログラム インターフェイスを使用して、Simulink モデルのコード マッピングの関数の既定の設定を取得および構成します。
コマンドが [コード マッピング] エディターとモデル ディクショナリにどのように反映されるかを対話的に確認するには、[関数の既定の設定] タブが選択された状態で [コード マッピング] エディターが開いていて、[関数カスタマイズ テンプレート] セクションが選択された状態でモデル ディクショナリが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。モデル ディクショナリを開く方法については、Embedded Coder ディクショナリ を開くを参照してください。
モデル CoderMapAPI
を開きます。
simulinkModel = "ECoderMapAPI";
open_system(simulinkModel);
このモデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
すべてのモデル関数に対して FunctionName
を空の文字列として指定します。これにより、生成されたコード内の関数の名前が、関数の既定の設定に指定した値によって決定されます。
setFunction(codeMapObj,find(codeMapObj,"Functions"),FunctionName=string.empty);
関数 InitializeTerminate
および Execution
の既定のカスタマイズ テンプレートを取得します。
exeFCNsTemplate = getFunctionDefault(codeMapObj,"Execution","FunctionCustomizationTemplate")
exeFCNsTemplate = 'FCN_Template__2'
initTermFCNsTemplate = getFunctionDefault(codeMapObj,"InitializeTerminate","FunctionCustomizationTemplate")
initTermFCNsTemplate = 'FCN_Template__1'
モデルからコードを生成します。
evalc("slbuild(simulinkModel)");
モデルのエントリポイント関数は、モデルの生成されたヘッダー ファイルで宣言されます。ヘッダー ファイル名を格納します。
model_h_file = fullfile(simulinkModel+"_ert_rtw",simulinkModel+".h")
model_h_file = "ECoderMapAPI_ert_rtw/ECoderMapAPI.h"
FCN_Template__1
の [関数の命名規則] は Template_1
で始まり、FCN_Template__2 の [関数の命名規則] は Template_2
で始まります。以下に、生成されたヘッダー ファイルのエントリポイント関数宣言セクションを示します。
/* Model entry point functions */ extern void Template_1_FCN_ECoderMapAPI_initialize(void); extern void Template_2_FCN_ECoderMapAPI_step(void); extern void Template_1_FCN_ECoderMapAPI_terminate(void);
関数名は、その関数に指定された [関数カスタマイズ テンプレート] の値に従って生成されます。
ヘッダー ファイルを開くために、MATLAB コマンド ウィンドウに次のコマンドを入力します。
edit(model_h_file)
2 つの関数カテゴリのテンプレート間で切り替えます。
setFunctionDefault(codeMapObj,"Execution",FunctionCustomizationTemplate=initTermFCNsTemplate); setFunctionDefault(codeMapObj,"InitializeTerminate",FunctionCustomizationTemplate=exeFCNsTemplate);
モデルからコードを再度生成します。
evalc("slbuild(simulinkModel)");
エントリポイント関数名が、更新された [関数カスタマイズ テンプレート] に従って更新されます。
/* Model entry point functions */ extern void Template_2_FCN_ECoderMapAPI_initialize(void); extern void Template_1_FCN_ECoderMapAPI_step(void); extern void Template_2_FCN_ECoderMapAPI_terminate(void);
入力引数
coderMapObj
— コード マッピング オブジェクト
CodeMapping
オブジェクト
関数 coder.mapping.api.get
の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。
例: myCM
funcCategory
— モデル関数のカテゴリ
"InitializeTerminate"
| "Execution"
| "SharedUtility"
既定の関数カスタマイズ テンプレートまたはメモリ セクションを返すモデルのエントリポイント関数のカテゴリ。
例: "Execution"
funcProperty
— 関数カスタマイズ テンプレートまたはメモリ セクション
"FunctionCustomizationTemplate"
| "MemorySection"
値を返す FunctionCustomizationTemplate
または MemorySection
。
例: "FunctionCustomizationTemplate"
出力引数
propertyValue
— 関数カスタマイズ テンプレートまたはメモリ セクションの名前
文字ベクトル | string スカラー
関数カスタマイズ テンプレートまたはメモリ セクションの名前。
データ型: char
| string
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)