メインコンテンツ

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 スカラー。ストレージ クラス ConstConstVolatileExportToFile、および Volatile に適用されます。
    GetFunctionデータ要素が生成コードで呼び出す get 関数の名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス GetSet に適用されます。
    HeaderFileデータ要素および外部コードによって読み取られるグローバル データの宣言を含む C ヘッダー ファイルの名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス ConstConstVolatileDefineExportToFileGetSetImportedDefineImportFromFile、および Volatile に適用されます。
    MemorySectionEmbedded Coder ディクショナリで定義されたモデルのメモリ セクションの名前を示す文字ベクトルまたは string スカラー。
    Owner同じモデルの階層構造の他のモデルで使用されるグローバル データを所有するモデルの名前を指定する文字ベクトルまたは string スカラー。グローバル データ定義は、所有者モデル用に生成されたコードに含まれます。ストレージ クラス ConstConstVolatileExportToFile、および Volatile に適用されます。
    PerserveDimensions生成されたコード内で多次元配列として表されるデータ要素の次元を保持するかどうかを示す boolean のフラグ。ストレージ クラス ConstConstVolatileExportToFileFileScopeImportFromFileLocalizable、および Volatile に適用されます。
    SetFunction

    データ要素が生成コードで呼び出す set 関数の名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス GetSet に適用されます。

    StorageClass次のいずれかの値: AutoBitfieldCompileFlagConstConstVolatileDefineDictionary defaultExportedGlobalExportToFileFileScopeGetSetImportedDefineImportedExternImportedExternPointerImportFromFileLocalizableModel defaultStructVolatile
    StructName生成されたコード内のデータ要素の構造の名前を指定する文字ベクトルまたは string スカラー。ストレージ クラス Bitfield および Struct に適用されます。

    データ型: char | string

    バージョン履歴

    R2020b で導入