getDataDefault
説明
は指定されたデータ カテゴリに対して指定されたプロパティのコード マッピングから値を返します。propertyValue
= getDataDefault(coderMapObj
,elementCategory
,mapProperty
)
モデルに接続している Embedded Coder ディクショナリがサービス インターフェイス構成を定義している場合、既定のデータ インターフェイスを指定することはできません。
例
Simulink モデルのコード マッピングにおけるデータの既定の設定のプログラムによる取得と設定
プログラム インターフェイスを使用して、Simulink モデルのコード マッピング構成におけるデータの既定の設定を取得および設定します。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[データの既定の設定] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル CoderMapAPI
を開きます。
simulinkModel = "CoderMapAPI";
open_system(simulinkModel);
モデルのコード マッピング オブジェクトを取得します。
codeMapObj = coder.mapping.api.get(simulinkModel);
すべてのルートレベルの端子のストレージ クラスを Model default
に設定します。これにより、それらの生成コードが Data Defaults
に設定した値で決定されるようになります。
setInport(codeMapObj,find(codeMapObj,"Inport"),StorageClass="Model default") setOutport(codeMapObj,find(codeMapObj,"Outport"),StorageClass="Model default")
入力端子と出力端子の既定のストレージ クラスを調べます。
inPortDefaultStorageClass = getDataDefault(codeMapObj,"Inports","StorageClass")
inPortDefaultStorageClass = 'ImportedExtern'
outPortDefaultStorageClass = getDataDefault(codeMapObj,"Outports","StorageClass")
outPortDefaultStorageClass = 'ImportedExternPointer'
モデルからコードを生成します。
evalc("slbuild(simulinkModel)");
ImportedExtern
および ImportedExternPointer
ストレージ クラスのルートレベルの端子は、モデルの生成されたプライベート ヘッダー ファイル内の別個のセクションで宣言されます。
ヘッダー ファイルの名前を格納します。
priv_h_file = fullfile(simulinkModel+"_grt_rtw",simulinkModel+"_private.h")
priv_h_file = "CoderMapAPI_grt_rtw/CoderMapAPI_private.h"
以下に、ヘッダー ファイル内のルートレベルの端子の宣言を示します。
/* Data with Imported storage */ extern real_T in_port_1; /* '<Root>/in_port_1' */ extern real_T in_port_2; /* '<Root>/in_port_2' */ extern real_T in_port_3; /* '<Root>/in_port_3' */ extern real_T in_port_4; /* '<Root>/in_port_4' */ /* Data with Imported storage (pointer) */ extern real_T *out_port_1; /* '<Root>/out_port_1' */ extern real_T *out_port_2; /* '<Root>/out_port_2' */ extern real_T *out_port_3; /* '<Root>/out_port_3' */ extern real_T *out_port_4; /* '<Root>/out_port_4' */
ヘッダー ファイルを開くには、MATLAB コマンド ウィンドウに次のコマンドを入力します。
edit(priv_h_file)
入力端子と出力端子の既定のストレージ クラスを入れ替えます。
setDataDefault(codeMapObj,"Inports",StorageClass=outPortDefaultStorageClass); setDataDefault(codeMapObj,"Outports",StorageClass=inPortDefaultStorageClass);
修正後のモデルからコードを生成します。
evalc("slbuild(simulinkModel)");
指定したストレージ クラスに従って、ヘッダー ファイルでルートレベルの端子の宣言が更新されます。
/* Data with Imported storage */ extern real_T out_port_1; /* '<Root>/out_port_1' */ extern real_T out_port_2; /* '<Root>/out_port_2' */ extern real_T out_port_3; /* '<Root>/out_port_3' */ extern real_T out_port_4; /* '<Root>/out_port_4' */ /* Data with Imported storage (pointer) */ extern real_T *in_port_1; /* '<Root>/in_port_1' */ extern real_T *in_port_2; /* '<Root>/in_port_2' */ extern real_T *in_port_3; /* '<Root>/in_port_3' */ extern real_T *in_port_4; /* '<Root>/in_port_4' */
入力引数
coderMapObj
— コード マッピング オブジェクト
CodeMapping
オブジェクト
関数 coder.mapping.api.get
の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。
例: myCM
elementCategory
— モデル データの要素カテゴリ
ExternalParameterObjects
| GlobalDataStores
| Inports
| InternalData
| ModelParameters
| Outports
| SharedLocalDataStores
プロパティ値を返すモデル データ要素のカテゴリ。
例: "Inports"
mapProperty
— 返すコード マッピング プロパティ値
StorageClass
| Identifier
値を返すコード マッピング プロパティ。次のいずれかのプロパティ名を指定します。
返す情報 | プロパティ名 |
---|---|
ストレージ クラスの名前 | StorageClass |
生成されたコード内のデータ要素に対する変数名 | Identifier |
例: "Identifier"
出力引数
propertyValue
— ストレージ クラスの名前またはストレージ クラス プロパティの値
文字ベクトル | string スカラー | Auto
| Dictionary default
| ExportedGlobal
| ImportedExtern
| ImportedExternPointer
| Model default
プロパティ値は指定するカテゴリとプロパティに応じた、以下のいずれかの値です。
プロパティ | 返される値 |
---|---|
StorageClass | 次のいずれかの値: Auto 、Dictionary default 、ExportedGlobal 、ImportedExtern 、ImportedExternPointer |
データ型: 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)