Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

addSignal

ブロックの出力信号をモデル コード マッピングに追加する

R2020b 以降

    説明

    addSignal(coderMapObj,portHandle) は、ブロックの出力端子ハンドルによって指定された信号を指定されたモデル コード マッピングに追加します。

    この関数は、ルートレベルの Inport ブロックから発生する信号には適用されません。

    addSignal(coderMapObj,portHandle,Name=Value) は、前の構文の入力引数に加えて、1 つ以上の名前と値の引数を指定します。

    すべて折りたたむ

    プログラム インターフェイスを使用して、Simulink モデルのコード マッピング構成で信号を追加および削除します。

    コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[信号/状態] タブが選択された状態でエディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。

    モデル CoderMapAPI を開きます。

    simulinkModel = "CoderMapAPI";
    open_system(simulinkModel);

    関数coder.mapping.api.getを使用して、モデルのコード マッピング オブジェクトを取得します。

    codeMapObj = coder.mapping.api.get(simulinkModel);

    4 つの Gain ブロックの出力端子のハンドルを取得し、変数に格納します。

    port_handle_1 = get_param(simulinkModel+"/gain_1","PortHandles").Outport;
    port_handle_2 = get_param(simulinkModel+"/gain_2","PortHandles").Outport;
    port_handle_3 = get_param(simulinkModel+"/gain_3","PortHandles").Outport;
    port_handle_4 = get_param(simulinkModel+"/gain_4","PortHandles").Outport
    port_handle_4 = 347.0042
    

    関数 addSignal を使用して、モデルのコード マッピングに信号を追加します。sig_1sig_3 のストレージ クラスを ImportedExtern に、sig_2sig_4 のストレージ クラスを ImportedExternPointer に設定します。モデルを更新します。

    addSignal(codeMapObj,[port_handle_1,port_handle_3],StorageClass="ImportedExtern")
    addSignal(codeMapObj,[port_handle_2,port_handle_4],StorageClass="ImportedExternPointer")
    set_param(simulinkModel,"SimulationCommand","update")

    slbuildコマンドを使用して、モデルからコードを生成します。

    evalc("slbuild(simulinkModel)");

    ImportedExtern および ImportedExternPointer ストレージ クラスの信号は、モデルの生成されたプライベート ヘッダー ファイルの別個のセクションで宣言されます。変数 priv_h_file にプライベート ヘッダー ファイルの名前を格納します。

    priv_h_file = fullfile(simulinkModel+"_grt_rtw",simulinkModel+"_private.h")
    priv_h_file = 
    "CoderMapAPI_grt_rtw/CoderMapAPI_private.h"
    

    信号の宣言は、ヘッダー ファイルで次のコードとして表示されます。

    /* Imported (extern) block signals */
    extern real_T sig__1;              /* '<Root>/gain_1' */
    extern real_T sig__3;              /* '<Root>/gain_3' */
    extern real_T in_port_1;           /* '<Root>/in_port_1' */
    extern real_T in_port_2;           /* '<Root>/in_port_2' */
    
    /* Imported (extern) pointer block signals */
    extern real_T *sig__2;             /* '<Root>/gain_2' */
    extern real_T *sig__4;             /* '<Root>/gain_4' */
    extern real_T *in_port_3;          /* '<Root>/in_port_3' */
    extern real_T *in_port_4;          /* '<Root>/in_port_4' */
    

    信号は、指定されたストレージ クラスに従って定義されます。

    ヘッダー ファイルを開くには、MATLAB® コマンド ウィンドウに次のコマンドを入力します。

    edit(priv_h_file)
    

    関数removeSignalを使用して、モデルのコード マッピングから最初の 2 つの信号線を削除します。モデルを更新します。

    removeSignal(codeMapObj,[port_handle_1,port_handle_2])
    set_param(simulinkModel,"SimulationCommand","update")

    slbuild コマンドを使用してモデルをリビルドします。

    evalc("slbuild(simulinkModel)"); 

    更新されたセクションは、ヘッダー ファイルで次のコードとして表示されます。

    /* Imported (extern) block signals */
    extern real_T sig__3;              /* '<Root>/gain_3' */
    extern real_T in_port_1;           /* '<Root>/in_port_1' */
    extern real_T in_port_2;           /* '<Root>/in_port_2' */
    
    /* Imported (extern) pointer block signals */
    extern real_T *sig__4;             /* '<Root>/gain_4' */
    extern real_T *in_port_3;          /* '<Root>/in_port_3' */
    extern real_T *in_port_4;          /* '<Root>/in_port_4' */
    

    削除された信号がヘッダー ファイルで表示されなくなっています。

    入力引数

    すべて折りたたむ

    関数 coder.mapping.api.get の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。

    コード マッピングに追加する信号。信号のソース ブロックの出力端子ハンドルとして指定します。複数の信号を同時に追加するには、出力端子ハンドル配列を指定します。

    例: addSignal(coderMapObj,[outport_1_Handle,outport_2_Handle])

    名前と値の引数

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に配置しなければなりませんが、ペアの順序は重要ではありません。

    例: StorageClass="ExportedGlobal"

    指定された信号用に設定するストレージ クラスの名前。次の値のいずれかとして指定します。

    • "Auto"

    • "ExportedGlobal"

    • "ImportedExtern"

    • "ImportedExternPointer"

    コード生成のための信号データ構成の詳細については、C コード生成のための信号データの構成を参照してください。

    生成されたコード内で信号データを表す変数の名前。

    データ型: char | string

    バージョン履歴

    R2020b で導入