getFunction
説明
は指定されたモデル関数に対するプロパティの値を返します。この関数を使用して、モデル関数に対して構成された関数カスタマイズ テンプレートまたはメモリ セクションを返します。以前に引数仕様を設定したシングルタスクの周期関数と Simulink 関数については、この関数を使用して引数仕様を返します。propertyValue
= getFunction(coderMapObj
,modelFunc
,funcProperty
)
例
Simulink モデルのコード マッピングの関数プロパティのプログラムによる取得および設定
プログラム インターフェイスを使用して、Simulink モデルのコード マッピング内の関数のプロパティを取得および構成します。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[Functions] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル ECoderMapAPI
を開きます。
simulinkModel = "ECoderMapAPI";
open_system(simulinkModel);
モデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
周期関数と初期化関数の FunctionName
プロパティを取得します。
periodicFcnName = getFunction(codeMapObj,"Periodic:D1","FunctionName")
periodicFcnName = 'myPeriodicFcn'
InitFcnName = getFunction(codeMapObj,"Initialize","FunctionName")
InitFcnName = 'myInitFcn'
モデルからコードを生成します。
evalc("slbuild(simulinkModel)");
エントリポイント関数はモデル ヘッダー ファイルで宣言されます。ヘッダー ファイル名を変数 model_h_file
に格納します。
model_h_file = fullfile(simulinkModel+"_ert_rtw",simulinkModel+".h")
model_h_file = "ECoderMapAPI_ert_rtw/ECoderMapAPI.h"
以下に、ヘッダー ファイル内のエントリポイント関数の宣言を示します。
/* Model entry point functions */ extern void myInitFcn(void); extern void myPeriodicFcn(void);
関数名は periodicFcnName
および InitFcnName
に格納されている名前です。
ヘッダー ファイルを開くには、MATLAB コマンド ウィンドウに次のコマンドを入力します。
edit(model_h_file)
周期関数の名前を変更します。
if(startsWith(periodicFcnName,"my")) setFunction(codeMapObj,"Periodic:D1",FunctionName="yourPeriodicFcn"); else setFunction(codeMapObj,"Periodic:D1",FunctionName="myPeriodicFcn"); end if(startsWith(InitFcnName,"my")) setFunction(codeMapObj,"Initialize",FunctionName="yourInitFcn"); else setFunction(codeMapObj,"Initialize",FunctionName="myInitFcn"); end
新しいエントリポイント関数名を使用して、モデルからコードを再度生成します。
evalc("slbuild(simulinkModel)");
以下に、ヘッダー ファイル内のエントリポイント関数の更新された宣言を示します。
/* Model entry point functions */ extern void yourInitFcn(void); extern void yourPeriodicFcn(void);
関数名が更新されています。
入力引数
coderMapObj
— コード マッピング オブジェクト
CodeMapping
オブジェクト
関数 coder.mapping.api.get
の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。
例: myCM
modelFunc
— モデル関数
"Initialize"
| "Periodic"
| "PartitionUpdate"
| "Terminate"
| ...
コード マッピング プロパティ値を返す対象となるモデル関数。下表の値のいずれかとして指定します。モデル コンフィギュレーション パラメーター [1 つの出力/更新関数] がオフの場合、更新されたバージョンの分割関数、周期的なマルチタスク関数、または周期的なシングルタスク関数を指定できます。モデル分割の詳細については、分割の作成を参照してください。
値 | モデル関数のタイプ |
---|---|
"Initialize" | 初期化関数 |
"Periodic" | 周期的なシングルタスク関数 |
"PeriodicUpdate" | 周期的なシングルタスク更新関数 |
"Terminate" | 終了関数 |
"Periodic: 。ここで、 はマルチタスク モデルの周期レートまたは連続レートに対するサンプル時間の周期に対応する注釈 (D1 など) です。 | 周期的なマルチタスク関数 |
"PeriodicUpdate: 。ここで、 はマルチタスク モデルの周期レートまたは連続レートに対するサンプル時間の周期に対応する注釈 (D1 など) です。 | 周期的なマルチタスク更新関数 |
"Reset: 。ここで はモデル内のリセット関数の名前です。 | リセット関数 |
"SimulinkFunction: 。ここで はモデル内の Simulink 関数の名前です。 | Simulink® 関数 |
例: "Periodic:D1"
funcProperty
— 返すコード マッピング プロパティ値
FunctionCustomizationTemplate
| MemorySection
| FunctionName
| Arguments
| TimerService
返されるコード マッピング プロパティ値。次の表に示されているいずれかのプロパティ名を指定します。
返す情報 | プロパティ名 |
---|---|
指定された関数に対する関数カスタマイズ テンプレート設定 | FunctionCustomizationTemplate |
指定された関数に関連付けられているメモリ セクション | MemorySection |
生成されたコードの関数に対して使用する名前 | FunctionName |
周期的なシングルタスク関数と Simulink 関数の引数について、生成されたコードに表示される際の名前、型修飾子、および順序を示す string | Arguments |
Embedded Coder ディクショナリで定義されているタイマー サービスの名前 | TimerService |
例: "FunctionCustomizationTemplate"
出力引数
propertyValue
— 関数カスタマイズ テンプレート、メモリ セクション、関数、または引数の仕様の名前
文字ベクトル | string スカラー
文字ベクトルまたは 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)