rtiostreamtest
カスタム rtiostream
インターフェイスの実装をテストする
構文
説明
rtiostreamtest(
は、カスタム connection
, parameterOne
, parameterTwo
, verbosityFlag
)rtiostream
インターフェイスの実装を検証するためのテスト スイートを実行します。
rtiostreamtest('tcp', host, port)
は、TCP/IP 通信を介して、指定された host
と port
を使用して MATLAB® をターゲット ハードウェアに接続します。
rtiostreamtest('serial', port, baud)
は、シリアル通信を介して、指定された port
と baud
の値を使用して MATLAB をターゲット ハードウェアに接続します。
初期化時に関数は基本的な rtiostream
I/O を使用します。関数によって次のことが決定されます。
ターゲット ハードウェア上でのデータのバイト順。
メモリ アドレスの粒度。
データ型のサイズ。
rtIOStreamRecv
ブロック。つまり、データが存在しない場合に、rtIOStreamRecv
がデータを待機するか、ただちに受信サイズ==
0 を返すかどうか。rtiostream
を使用してデータを受信または送信するための内部バッファーのサイズ (BUFFER_SIZE
)。既定の設定は 128 バイトです。
Test 1 (fixed size data exchange)
では、関数は次を実行します。
データをさまざまなチャンク サイズで適切に送受信できることを確認する。開発用コンピューターとターゲット ハードウェアのチャンク サイズは "対称的" です。
検証可能な既知のシーケンスとしてデータを送信する。
"ホストからターゲットへの" テストを実行する。開発用コンピューターはデータを送信し、ターゲット ハードウェアは 1、4、128 バイトの連続チャンクでデータを受信します。
"ターゲットからホストへの" テストを実行する。ターゲット ハードウェアはデータを送信し、開発用コンピューターは 1、4、128 バイトの連続チャンクでデータを受信します。
Test 2 (varying size data exchange)
では、関数は次を実行します。
データをさまざまなチャンク サイズで適切に送受信できることを確認する。開発用コンピューターとターゲット ハードウェアのチャンク サイズは "非対称" です。
検証可能な既知のシーケンスとしてデータを送信する。
"ホストからターゲットへの" テストを実行する。
開発用コンピューターは 128 バイトのチャンクでデータを送信し、ターゲット ハードウェアは 64 バイトのチャンクでデータを受信します。
開発用コンピューターは 64 バイトのチャンクでデータを送信し、ターゲット ハードウェアは 128 バイトのチャンクでデータを受信します。
"ターゲットからホストへの" テストを実行する。
ターゲット ハードウェアは 64 バイトのチャンクでデータを送信し、開発用コンピューターは 128 バイトのチャンクでデータを受信します。
ターゲット ハードウェアは 128 バイトのチャンクでデータを送信し、開発用コンピューターは 64 バイトのチャンクでデータを受信します。
Test 3 (receive buffer detection)
では、ターゲット ハードウェア上で rtIOStreamRecv
の呼び出し間に格納できるデータが関数によって決定されます。関数では反復的なプロセスが使用されます。
開発用コンピューターは、ターゲット ハードウェアのスリープ中にデータ シーケンスを送信します。
rtIOStreamRecv
は、ターゲット ハードウェアのスリープ中は呼び出されません。ターゲット ハードウェアが起動すると、
rtIOStreamRecv
を呼び出してドライバーの内部バッファーからデータを受信します。関数は、エラーをチェックしたり、受信データの値をチェックすることで、内部バッファーがオーバーフローしたかどうかを判定します。
オーバーフロー エラーが発生せず、送信データが正しく受信される場合、関数は別の反復を開始し、より大きいデータ シーケンスでステップ 1 を実行します。
関数は、問題が発生しなかった最後の既知のバッファーのサイズを報告します。
例
カスタム rtiostream
インターフェイス実装の動作の検証
テスト スイートは 2 つの部分で構成されています。テスト スイートの 1 つの部分は、ターゲット ハードウェア上で実行されるアプリケーションです。もう 1 つの部分は MATLAB で実行されます。
ターゲット アプリケーションを作成するには、次のファイルをコンパイルおよびリンクします。
調査中の
rtiostream
実装。たとえば、rtiostream_tcpip.c
。
rtiostreamtest.c
、rtiostreamtest.h
、およびmain.c
は
にあります。matlabroot
/toolbox/coder/rtiostream/src/rtiostreamtestターゲット ハードウェアにアプリケーションをダウンロードして実行します。
テスト スイートの MATLAB 部分を実行するには、関数
rtiostreamtest
を呼び出します。以下に例を示します。rtiostreamtest('tcp','myProcessor','2345')
関数によって次のような出力が生成されます。
### Test suite for rtiostream ### Initializing connection with target... ### Hardware characteristics discovered Size of char : 8 bit Size of short : 16 bit Size of int : 32 bit Size of long : 32 bit Size of float : 32 bit Size of double : 64 bit Size of pointer : 64 bit Byte ordering : Little Endian ### rtiostream characteristics discovered Round trip time : 0.25098 ms rtIOStreamRecv behavior : non-blocking ### Test results Test 1 (fixed size data exchange): ......... PASS Test 2 (varying size data exchange): ......... PASS ### Test suite for rtiostream finished successfully ###
関数によって平均帯域幅プロファイルも生成されます。
入力引数
バージョン履歴
R2013a で導入