setDataDefault
説明
setDataDefault(
は、モデル データの指定されたカテゴリに関して、既定のストレージ クラスおよびストレージ クラス プロパティの値をコード マッピングで設定します。coderMapObj
,elemCategory
,Name=Value
)
モデルに接続している 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
elemCategory
— モデル要素のカテゴリ
ExternalParameterObjects
| GlobalDataStores
| Inports
| InternalData
| ModelParameters
| Outports
| SharedLocalDataStores
ストレージ クラスとストレージ クラス プロパティを設定するモデル データ要素のカテゴリ。
例: "Inports"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に配置しなければなりませんが、ペアの順序は重要ではありません。
例: StorageClass="ExportedGlobal"
StorageClass
— ストレージ クラスの名前
Auto
| Dictionary default
| ExportedGlobal
| ImportedExtern
| ImportedExternPointer
| Model default
指定されたデータ要素カテゴリ用に設定するストレージ クラス。事前定義済みのストレージ クラスまたはモデルに関連付けられた Embedded Coder ディクショナリで定義されているストレージ クラスの名前。指定可能な値は、指定するカテゴリに応じて変わります。生成されたコードでのデータ表示を制御するストレージ クラスの選択を参照してください。
例: StorageClass="ImportedExtern"
バージョン履歴
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)