プログラム インターフェイスを使用して、Simulink モデルのコード マッピング構成で信号を追加および削除します。
コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[信号/状態] タブが選択された状態でエディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。
モデル CoderMapAPI を開きます。
関数coder.mapping.api.getを使用して、モデルのコード マッピング オブジェクトを取得します。
4 つの Gain ブロックの出力端子のハンドルを取得し、変数に格納します。
関数 addSignal を使用して、モデルのコード マッピングに信号を追加します。sig_1 と sig_3 のストレージ クラスを ImportedExtern に、sig_2 と sig_4 のストレージ クラスを ImportedExternPointer に設定します。モデルを更新します。
slbuildコマンドを使用して、モデルからコードを生成します。
ImportedExtern および ImportedExternPointer ストレージ クラスの信号は、モデルの生成されたプライベート ヘッダー ファイルの別個のセクションで宣言されます。変数 priv_h_file にプライベート ヘッダー ファイルの名前を格納します。
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 コマンド ウィンドウに次のコマンドを入力します。
関数removeSignalを使用して、モデルのコード マッピングから最初の 2 つの信号線を削除します。モデルを更新します。
slbuild コマンドを使用してモデルをリビルドします。
更新されたセクションは、ヘッダー ファイルで次のコードとして表示されます。
/* 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' */
削除された信号がヘッダー ファイルで表示されなくなっています。