メインコンテンツ

TCP/IP Receive

リモート ホストから TCP/IP ネットワーク経由でデータを受信する

アドオンが必要: この機能には MATLAB Coder Support Package for NVIDIA Jetson and NVIDIA DRIVE Platforms アドオンが必要です。

  • NVIDIA TCP/IP Receive block

ライブラリ:
NVIDIA Jetson and NVIDIA DRIVE / Network

説明

リモート ホストまたは別のターゲット ハードウェアからネットワーク経由でデータを受信します。接続モードをサーバーとして設定する場合は、ローカル ポートを指定しなければなりません。このローカル ポートは TCP/IP サーバーのリスニング ポートとして機能します。ブロックをクライアントとして設定する場合、データを受信する TCP/IP サーバーのリモート アドレスおよびリモート ポートを指定しなければなりません。ブロックは、ブロッキング モードまたは非ブロッキング モードでデータを受け入れます。[Data] 端子の出力は、各タイム ステップで要求されたデータを格納します。[Status] 端子は、指定されたタイム ステップで新しいデータを受信するかどうかを示す 0 または 1 を格納します。[Status] 端子の値が 1 の場合、[Data] 端子からのデータが有効であることを示します。

ブロッキング モードのとき、モデルは要求されたデータが利用可能になるのを待機している間、実行をブロックします。

blocking mode

タイム ステップ 1 で、ブロックは 4 つのデータ値を要求し、TCP/IP 受信バッファーは 4 つのデータ値を取得します。実行が開始されます。

タイム ステップ 2 で、ブロックはデータを再び要求しますが、TCP/IP 受信バッファーは 3 つのデータ値のみを取得します。バッファーが 4 番目のデータ値を受信するか、タイムアウト値が経過するまで、実行は一時停止されます。その後、実行が再開されます。

タイム ステップ 3 で、ブロックはデータを要求し、バッファーは 5 つのデータ値を受け取ります。ブロックは最初の 4 つのデータ値を返し、残りのデータ値は次の受信サイクルに使用されます。

非ブロッキング モードでは、モデルは連続的に実行されます。

non blocking mode

タイム ステップ 1 で、ブロックはデータを要求し、バッファーは 4 つのデータ値を取得します。ブロックは [Status] 端子の値を 0 に変更し、新しく要求されたデータが利用可能であることを示します。この時点で、[Data] 端子には、新しく受信したデータ値が格納されています。ブロックは [Data] 端子の値を 0 にリセットします。

タイム ステップ 2 で、ブロックはデータを再び要求しますが、バッファーは 3 つの値のみを取得します。データ サイズは 4 として指定されているため、ブロックは値 3 を返すことができません。そのため、ブロックは [Status] 端子の値を 1 に設定し、新しいデータがないことを示します。[Data] 端子のすべての値は 0 になります。この時点で、バッファーには 3 つのデータ値があります。しかし、このフェーズでは、ブロッキング モードとは異なり実行は停止されません。

タイム ステップ 3 で、バッファーには 5 つのデータ値があり、ブロックは最初の 4 つのデータ値を受信した順番に返し、[Status] 端子の値を 0 に変更します。残りのデータ値は次の受信サイクルに使用されます。

端子

出力

すべて展開する

ブロックはデータを [Nx1] の配列として出力します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

この端子はデータ受信ステータスを示します。ステータス値 1 はデータの受信成功を意味します。

データ型: int8

パラメーター

すべて展開する

[メイン] タブ

ブロックを TCP/IP サーバーまたは TCP/IP クライアントとして接続するオプションを選択します。

プログラムでの使用

ブロック パラメーター: Mode_
型: 文字ベクトル
値: 'Server'|'Client'
既定の設定: 'Server'

TCP/IP サーバーのリスニング ポートとして機能するローカル ポート番号を入力します。このパラメーターは、[Connection mode][Server] に設定した場合のみ表示されます。

プログラムでの使用

ブロック パラメーター: LocalServerPort_
型: 文字ベクトル
値: '25000'|scalar
既定の設定: '25000'

データの受信元のリモート サーバー アドレスを入力します。このパラメーターは、[Connection mode][Client] に設定した場合のみ表示されます。

プログラムでの使用

ブロック パラメーター: RemoteAddr_
型: 文字ベクトル
値: '127.0.0.1'|scalar
既定の設定: '127.0.0.1'

リモート サーバー ポートを入力します。このパラメーターは、[Connection mode][Client] に設定した場合のみ表示されます。

プログラムでの使用

ブロック パラメーター: RemoteServerPort_
型: 文字ベクトル
値: '25000'|scalar
既定の設定: '25000'

リモート ホストから受信するデータ型を選択します。

プログラムでの使用

ブロック パラメーター: DataType_
型: 文字ベクトル
値: 'uint8'|'uint16''uint32''double''single''int8''int16''int32''boolean'
既定の設定: 'uint8'

リモート ホストから受信するデータ サイズを入力します。

プログラムでの使用

ブロック パラメーター: DataSize_
型: 文字ベクトル
値: '1'|scalar
既定の設定: '1'

データを受信する時間周波数を入力します。

プログラムでの使用

ブロック パラメーター: SampleTime_
型: 文字ベクトル
値: スカラー | ベクトル
既定の設定: '0.1'

[Advanced] タブ

データを受信するローカル IP ポートの手動指定を許可します。このパラメーターは、[Connection mode][Client] に設定した場合のみ表示されます。

プログラムでの使用

ブロック パラメーター: ClientPortBindingSelection_
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'off'

データを受信するクライアントのローカル ポートを入力します。このパラメーターは、[Connection mode][Client] に設定し、[Manually specify local IP port] チェック ボックスをオンにした場合のみ表示されます。

プログラムでの使用

ブロック パラメーター: ClientPortToBind_
型: 文字ベクトル
値: '35000'|scalar
既定の設定: '35000'

このオプションは、データを受信するまでブロックが待機するかどうかを指定する場合に選択します。このチェック ボックスをオンにすると、ブロッキング モードが有効になります。

プログラムでの使用

ブロック パラメーター: BlockingMode_
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'off'

各シミュレーション タイム ステップ中にデータを受信するのをブロックが待機する時間を指定します。このフィールドは、[Wait until data received] パラメーターを選択していない場合は利用できません。ブロックがデータを受信するまで無期限に待機する場合は、このパラメーターに ‘inf’ 値を入力します。

プログラムでの使用

ブロック パラメーター: BlockTimeout_
型: 文字ベクトル
値: '0.1'|scalar
既定の設定: '0.1'

バージョン履歴

R2020b で導入