Main Content

getDataDefault

モデルのデータ カテゴリに対する既定のストレージ クラスまたはストレージ クラス プロパティ設定の取得

R2020b 以降

    説明

    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"

    値を返すコード マッピング プロパティ。次のいずれかのプロパティ名を指定します。

    返す情報プロパティ名
    ストレージ クラスの名前StorageClass
    生成されたコード内のデータ要素に対する変数名Identifier

    例: "Identifier"

    出力引数

    すべて折りたたむ

    プロパティ値は指定するカテゴリとプロパティに応じた、以下のいずれかの値です。

    プロパティ返される値
    StorageClass次のいずれかの値: AutoDictionary defaultExportedGlobalImportedExternImportedExternPointer

    データ型: char | string

    バージョン履歴

    R2020b で導入