Main Content

setDataDefault

モデル データ カテゴリの既定のストレージ クラスとストレージ クラス プロパティの値を設定する

R2020b 以降

    説明

    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"

    バージョン履歴

    R2020b で導入