addSignal
説明
addSignal(
は、ブロックの出力端子ハンドルによって指定された信号を指定されたモデル コード マッピングに追加します。coderMapObj
,portHandle
)
この関数は、ルートレベルの Inport ブロックから発生する信号には適用されません。
addSignal(
は、前の構文の入力引数に加えて、1 つ以上の名前と値の引数を指定します。coderMapObj
,portHandle
,Name=Value
)
例
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
— コード マッピングに追加する信号
ブロック出力端子ハンドル | 端子ハンドル配列
コード マッピングに追加する信号。信号のソース ブロックの出力端子ハンドルとして指定します。複数の信号を同時に追加するには、出力端子ハンドル配列を指定します。
例: addSignal(coderMapObj,[outport_1_Handle,outport_2_Handle])
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に配置しなければなりませんが、ペアの順序は重要ではありません。
例: StorageClass="ExportedGlobal"
StorageClass
— ストレージ クラスの名前
"Auto"
| "ExportedGlobal"
| ...
指定された信号用に設定するストレージ クラスの名前。ストレージ クラスは、モデルの内部 Embedded Coder® ディクショナリ、またはモデルに付加されている共有 Embedded Coder ディクショナリのいずれかで定義されます。
コード生成のための信号データ構成の詳細については、C コード生成のための信号データの構成を参照してください。
Identifier
— 変数名
文字ベクトル | string スカラー
生成されたコード内で信号データを表す変数の名前。
データ型: char
| string
DefinitionFile
— C ソース ファイル
文字ベクトル | string スカラー
データ要素および外部コードによって読み取られるグローバル データの定義を含む C ソース ファイルのファイル名。ストレージ クラス ExportToFile
および Volatile
に適用されます。
データ型: char
| string
GetFunction
— get 関数の名前
文字ベクトル | string スカラー
データ要素が生成コードで呼び出す get
関数の名前。ストレージ クラス GetSet
に適用されます。
データ型: char
| string
HeaderFile
— C ヘッダー ファイル
文字ベクトル | string スカラー
データ要素および外部コードによって読み取られるグローバル データの宣言を含む C ヘッダー ファイルのファイル名。ストレージ クラス ExportToFile
、GetSet
、ImportFromFile
、および Volatile
に適用されます。
データ型: char
| string
Owner
— グローバル データの所有者
文字ベクトル | string スカラー
同じモデルの階層構造の他のモデルで使用されるグローバル データを所有するモデルの名前。グローバル データ定義は、所有者モデル用に生成されたコードに含まれます。ストレージ クラス ExportToFile
および Volatile
に適用されます。
データ型: char
| string
PreserveDimensions
— 多次元配列の次元を保持するかどうかを示す boolean フラグ
True
| False
モデル コンフィギュレーション パラメーター [配列のレイアウト] が [行優先]
に設定されている場合、生成されたコード内で多次元配列として表されるデータ要素の次元を保持するかどうかを示すフラグ。ストレージ クラス ExportToFile
、GetSet
、ImportFromFile
、Localizable
、および Volatile
に適用されます。
データ型: logical
SetFunction
— set 関数の名前
文字列 | string スカラー
データ要素が生成コードで呼び出す set
関数の名前。ストレージ クラス GetSet
に適用されます。
データ型: char
| string
StructName
— 構造体の名前
文字ベクトル | string スカラー
コード ジェネレーターが生成されたコード内でデータ要素の構造体を識別するために使用する名前。ストレージ クラス Bitfield
および Struct
に適用されます。
データ型: char
| string
storageClassPropertyName
— ストレージ クラス プロパティの値
プロパティの定義に依存
Embedded Coder ディクショナリで定義されたストレージ クラス プロパティ。指定可能な値は、ストレージ クラスの定義に応じて異なります。
MeasurementService
— 測定サービス インターフェイスの名前
Dictionary default
(既定値) | 文字ベクトル | string スカラー
Embedded Coder ディクショナリで定義されている測定サービス インターフェイスの名前を含む string または文字ベクトル。信号、状態、およびデータ ストアの測定サービス インターフェイスを構成することで、データを測定用に生成コードで保持できます。ディクショナリの既定値を使用するには、"Dictionary default"
を指定します。状態のデータをコードで保持する必要がない場合は、"Not measured"
を指定します。
測定サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Measurement Service Interfaces for Signals, States, and Data Storesを参照してください。
データ型: char
| string
バージョン履歴
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)