このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
setDataDefault
モデル データ カテゴリの既定のストレージ クラスとストレージ クラス プロパティの値を設定する
説明
setDataDefault( は、モデル データの指定されたカテゴリに関して、既定のストレージ クラスおよびストレージ クラス プロパティの値をコード マッピングで設定します。coderMapObj,elemCategory,Name=Value)
モデルに接続している 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"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: StorageClass="ExportedGlobal"
指定されたデータ要素カテゴリ用に設定するストレージ クラス。事前定義済みのストレージ クラスまたはモデルに関連付けられた Embedded Coder ディクショナリで定義されているストレージ クラスの名前。指定可能な値は、指定するカテゴリに応じて変わります。生成されたコードでのデータ表示を制御するストレージ クラスの選択を参照してください。
例: StorageClass="ImportedExtern"
データ要素および外部コードによって読み取られるグローバル データの定義を含む C ソース ファイルのファイル名。ストレージ クラス Const、ConstVolatile、ExportToFile、および Volatile に適用されます。
例: DefinitionFile="myDataDefs.c"
データ型: char | string
データ要素が生成コードで呼び出す get 関数の名前。ストレージ クラス GetSet に適用されます。
例: GefFunction="myDataGetFunction"
データ型: char | string
データ要素および外部コードによって読み取られるグローバル データの宣言を含む C ヘッダー ファイルのファイル名。ストレージ クラス Const、ConstVolatile、Define、ExportToFile、GetSet、ImportedDefine、ImportFromFile、および Volatile に適用されます。
例: HeaderFile="myDataDecl.h"
データ型: char | string
モデルに関連付けられた Embedded Coder ディクショナリで定義されているメモリ セクションの名前。
メモ
ModelParameterArguments カテゴリの既定の MemorySection については、コード マッピング オブジェクトを使用して直接取得または構成することはできません。ModelParameterArguments の既定の MemorySection を構成するには、コーダー ディクショナリで MemorySection を含むカスタムの StorageClass を定義し、このストレージ クラスを ModelParameterArguments の既定として設定します。
例: MemorySection="myFastMem"
データ型: char | string
同じモデルの階層構造の他のモデルで使用されるグローバル データを所有するモデルの名前。グローバル データ定義は、データを所有するモデル用に生成されたコードに含まれます。ストレージ クラス Const、ConstVolatile、ExportToFile、および Volatile に適用されます。
例: Owner="myModelA"
データ型: char | string
モデル コンフィギュレーション パラメーター [配列のレイアウト] が [行優先] に設定されている場合、生成されたコード内で多次元配列として表されるデータ要素の次元を保持するかどうかを示すフラグ。ストレージ クラス Const、ConstVolatile、ExportToFile、FileScope、GetSet、ImportFromFile、Localizable、および Volatile に適用されます。
例: PreserveDimensions=true
データ型: logical
データ要素が生成コードで呼び出す set 関数の名前。ストレージ クラス GetSet に適用されます。
例: SetFunction="myDataSetFunction"
データ型: char | string
コード ジェネレーターが生成されたコード内でデータ要素の構造体を識別するために使用する名前。ストレージ クラス Bitfield および Struct に適用されます。
例: StructName="myDataStruct"
Embedded Coder ディクショナリで定義されたストレージ クラス プロパティ。指定可能な値は、ストレージ クラスの定義に応じて異なります。
データ型: char | string
バージョン履歴
R2020b で導入
参考
coder.mapping.api.CodeMapping | coder.mapping.api.get | getDataDefault
トピック
- 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)