getInterfaceImpl
構文
interface = getInterfaceImpl(obj)
説明
MATLAB®
は System ブロックの入力と出力をデータまたはメッセージのいずれかとして指定します。interface
= getInterfaceImpl(obj
)
実行時の詳細
getInterfaceImpl
は matlab.System
クラスの一部であり、setupImpl
メソッドの前に呼び出されます。
メソッドのオーサリングのヒント
このメソッドでは Access = protected
と設定しなければなりません。
このメソッドでは、プロパティを変更することはできません。
入力引数
obj
— System object™
System object
オブジェクト固有のプロパティ、状態、およびメソッドへのアクセスに使用される System object ハンドル。getInterfaceImpl
メソッドがこのオブジェクトを使用しない場合、この入力を ~
で置き換えることができます。
出力引数
interface
— MATLAB System ブロック インターフェイス
インターフェイス オブジェクトのスカラー | インターフェイス オブジェクトのベクトル
MATLAB System ブロック インターフェイス。matlab.system.interface.*
オブジェクトのスカラーまたはベクトルとして返されます。matlab.system.interface.Input
(signalName
,signalType
) を使用して入力信号タイプを定義します。matlab.system.interface.Output
(signalName
,signalType
) を使用して出力信号タイプを定義します。
signalName
– 端子の名前を定義します。文字配列で表されます。signalType
– 端子のタイプを定義します。値はmatlab.system.interface.Data
またはmatlab.system.interface.Message
のいずれかです。
例
MATLAB System ブロックを使用したメッセージ ペイロードの処理
この例では、MATLAB System ブロックを使用して、メッセージを送信、受信、および処理する方法を説明します。System object を使用して、メッセージ ペイロードを送受信および操作するカスタム動作をモデル化するブロックを作成します。
モデルを読み込んで開く
メッセージ送受信システムのモデルを開きます。このモデルには乱数発生器がデータ ソースとして含まれます。そのデータに基づいて、メッセージの送信側は正弦波のペイロードをもつメッセージを Queue ブロックに送信します。Queue ブロックにはメッセージが格納され、メッセージの受信側はメッセージをデータに変換し直します。
open_system('slexMessageArrivalExample');
getInterfaceImpl
System Object API を使用したメッセージ端子の指定
この例ではgetInterfaceImpl
を使用して、MATLAB System ブロックでメッセージの送信側とメッセージの受信側の両方に対する入出力メッセージ端子を指定します。メッセージの送信側では、getInterfaceImpl
を使用して MATLAB System ブロックの出力をメッセージとして定義します。このアクションにより、System object でメッセージ出力の作成が促されます。メッセージの受信側では、getInterfaceImpl
を使用して System object の入力をメッセージとして、出力をデータとして定義します。
%Function to send messages function interface = getInterfaceImpl(~) import matlab.system.interface.*; interface = Output("Out1", Message); end
%Function to receive messages and output as data function interface = getInterfaceImpl(obj) import matlab.system.interface.*; interface = [Input("In1", Message), ... Output("Out1", Data), Output("out2", Data)]; end
伝播関数とサンプル時間の設定
4 つの伝播関数 (getOutputSizeImpl
、getOutputDataTypeImpl
、isOutputComplexImpl
、isOutputFixedSizeImpl
) をメッセージの送信側に設定しなければなりません。
この例では、メッセージ キューに最大容量の 16 件のメッセージが含まれます。乱数発生器のサンプル時間は 0.1 です。受信側のサンプル時間は 1 です。メッセージの受信側のサンプル時間は getSampleTimeImpl
API を使用して MATLAB System ブロックに設定されます。
function sts = getSampleTimeImpl(obj) sts = createSampleTime(obj,'Type','Discrete', ... 'SampleTime',obj.SampleTime); end
モデルのシミュレーションと結果の確認
Scope ブロックに結果が表示されます。これらの結果はさらにシミュレーションを実行すると、想定どおり、乱数発生器で 50% の時間ゼロより大きい数値が生成されることを示します。
バージョン履歴
R2021a で導入
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)