このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
removeSignal
説明
removeSignal(
は、ブロックの出力端子ハンドルによって指定された信号を指定されたモデル コード マッピングから削除します。 coderMapObj
,portHandle
)
この関数は、ルートレベルの Inport ブロックから発生する信号には適用されません。
例
Simulink モデルのコード マッピング内の信号線のプログラムによる追加および削除
プログラム インターフェイスを使用して、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_1
と sig_3
のストレージ クラスを ImportedExtern
に、sig_2
と sig_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' */
削除された信号がヘッダー ファイルで表示されなくなっています。
入力引数
coderMapObj
— コード マッピング オブジェクト
CodeMapping
オブジェクト
関数 coder.mapping.api.get
の呼び出しによって返されるコード マッピング オブジェクト (モデル コード マッピング)。
portHandle
— 信号のソース ブロックの出力端子ハンドル
ブロック出力端子ハンドル | 端子ハンドル配列
コード マッピングから削除する信号。信号のソース ブロックの出力端子ハンドルとして指定します。複数の信号を同時に削除するには、出力端子ハンドル配列を指定します。
例: removeSignal(codeMapObj,[outport_1_Handle,outport_2_Handle])
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)