getDataDefault
モデルのデータ カテゴリに対する既定のストレージ クラスまたはストレージ クラス プロパティ設定の取得
説明
は指定されたデータ カテゴリに対して指定されたプロパティのコード マッピングから値を返します。propertyValue = getDataDefault(coderMapObj,elementCategory,mapProperty)
モデルに接続している Embedded Coder ディクショナリがサービス インターフェイス構成を定義している場合、既定のデータ インターフェイスを指定することはできません。
例
プログラム インターフェイスを使用して、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' */
入力引数
関数 coder.mapping.api.get の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。
例: myCM
プロパティ値を返すモデル データ要素のカテゴリ。
例: "Inports"
値を返すコード マッピング プロパティ。次のプロパティ名のいずれか、またはモデルに関連付けられた Embedded Coder ディクショナリで定義されているストレージ クラスのプロパティ名を指定します。
メモ
ModelParameterArguments カテゴリの既定の MemorySection については、コード マッピング オブジェクトを使用して直接取得または構成することはできません。ModelParameterArguments の既定の MemorySection を構成するには、コーダー ディクショナリで MemorySection を含むカスタムの StorageClass を定義し、このストレージ クラスを ModelParameterArguments の既定として設定します。
| 返す情報 | プロパティ名 |
|---|---|
| ストレージ クラスの名前 | StorageClass |
| 生成されたコード内のデータ要素に対する変数名 | Identifier |
| データ要素および外部コードによって読み取られるグローバル データの定義を含むソース定義ファイルの名前 | DefinitionFile |
データ要素に対して生成されるコードによって呼び出される get 関数の名前 | GetFunction |
| モデルのデータ要素および外部コードによって読み取られるグローバル データの宣言を含むソース ヘッダー ファイルの名前 | HeaderFile |
| モデルに関連付けられた Embedded Coder ディクショナリで定義されているメモリ セクションの名前 | MemorySection |
| モデルの階層構造内の複数のモデルで共有されるデータ要素の定義をコード ジェネレーターが配置するモデルの名前 | Owner |
| 多次元配列として表されるデータの次元をコード ジェネレーターで維持するかどうかを示すブール値 | PerserveDimensions |
データ要素に対して生成されるコードによって呼び出される set 関数の名前 | SetFunction |
| データ要素用の生成コード内の構造体の名前 | StructName |
例: "Identifier"
出力引数
プロパティ値は指定するカテゴリとプロパティに応じた、以下のいずれかの値です。
| プロパティ | 返される値 |
|---|---|
DefinitionFile | データ要素および外部コードによって読み取られるグローバル データの定義を含む C ソース ファイルの名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス Const、ConstVolatile、ExportToFile、および Volatile に適用されます。 |
GetFunction | データ要素が生成コードで呼び出す get 関数の名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス GetSet に適用されます。 |
HeaderFile | データ要素および外部コードによって読み取られるグローバル データの宣言を含む C ヘッダー ファイルの名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス Const、ConstVolatile、Define、ExportToFile、GetSet、ImportedDefine、ImportFromFile、および Volatile に適用されます。 |
MemorySection | Embedded Coder ディクショナリで定義されたモデルのメモリ セクションの名前を示す文字ベクトルまたは string スカラー。 |
Owner | 同じモデルの階層構造の他のモデルで使用されるグローバル データを所有するモデルの名前を指定する文字ベクトルまたは string スカラー。グローバル データ定義は、所有者モデル用に生成されたコードに含まれます。ストレージ クラス Const、ConstVolatile、ExportToFile、および Volatile に適用されます。 |
PerserveDimensions | 生成されたコード内で多次元配列として表されるデータ要素の次元を保持するかどうかを示す boolean のフラグ。ストレージ クラス Const、ConstVolatile、ExportToFile、FileScope、ImportFromFile、Localizable、および Volatile に適用されます。 |
SetFunction | データ要素が生成コードで呼び出す |
StorageClass | 次のいずれかの値: Auto、Bitfield、CompileFlag、Const、ConstVolatile、Define、Dictionary default、ExportedGlobal、ExportToFile、FileScope、GetSet、ImportedDefine、ImportedExtern、ImportedExternPointer、ImportFromFile、Localizable、Model default、Struct、Volatile |
StructName | 生成されたコード内のデータ要素の構造の名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス Bitfield および Struct に適用されます。 |
データ型: char | string
バージョン履歴
R2020b で導入
参考
coder.mapping.api.CodeMapping | coder.mapping.api.get | setDataDefault
トピック
- C Data Code Interface Configuration for Model Interface Elements
- Configure Root-Level Inport Blocks for C Code Generation
- Configure Root-Level Outport Blocks for C Code Generation
- C コード生成のための信号データの構成
- C コード生成のパラメーターの構成
- C コード生成のためのブロックの状態の構成
- C コード生成用のデータ ストアの構成
- Configure Default C Code Generation for Categories of Data Elements and Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)