Main Content

rtiostreamtest

カスタム rtiostream インターフェイスの実装をテストする

説明

rtiostreamtest(connection, parameterOne, parameterTwo, verbosityFlag) は、カスタム rtiostream インターフェイスの実装を検証するためのテスト スイートを実行します。

rtiostreamtest('tcp', host, port) は、TCP/IP 通信を介して、指定された hostport を使用して MATLAB® をターゲット ハードウェアに接続します。

rtiostreamtest('serial', port, baud) は、シリアル通信を介して、指定された portbaud の値を使用して 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 の呼び出し間に格納できるデータが関数によって決定されます。関数では反復的なプロセスが使用されます。

  1. 開発用コンピューターは、ターゲット ハードウェアのスリープ中にデータ シーケンスを送信します。rtIOStreamRecv は、ターゲット ハードウェアのスリープ中は呼び出されません。

  2. ターゲット ハードウェアが起動すると、rtIOStreamRecv を呼び出してドライバーの内部バッファーからデータを受信します。

  3. 関数は、エラーをチェックしたり、受信データの値をチェックすることで、内部バッファーがオーバーフローしたかどうかを判定します。

  4. オーバーフロー エラーが発生せず、送信データが正しく受信される場合、関数は別の反復を開始し、より大きいデータ シーケンスでステップ 1 を実行します。

関数は、問題が発生しなかった最後の既知のバッファーのサイズを報告します。

カスタム rtiostream インターフェイス実装の動作の検証

テスト スイートは 2 つの部分で構成されています。テスト スイートの 1 つの部分は、ターゲット ハードウェア上で実行されるアプリケーションです。もう 1 つの部分は MATLAB で実行されます。

  1. ターゲット アプリケーションを作成するには、次のファイルをコンパイルおよびリンクします。

    rtiostreamtest.crtiostreamtest.h、および main.cmatlabroot/toolbox/coder/rtiostream/src/rtiostreamtest にあります。

  2. ターゲット ハードウェアにアプリケーションをダウンロードして実行します。

  3. テスト スイートの 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 ###
    

    関数によって平均帯域幅プロファイルも生成されます。

入力引数

すべて折りたたむ

通信チャネルのトランスポート プロトコルを指定します。

  • 'tcp' –– TCP/IP

  • 'serial' –– RS-232 シリアル

connection'tcp' である場合、ターゲット プロセッサの名前を指定します。たとえば、開発用コンピューターがターゲット プロセッサである場合、'localhost' を指定できます。

connection'serial' である場合、シリアル ポート ID (たとえば、COM1 には 'COM1'、COM2 には 'COM2' など) を指定します。

connection'tcp' である場合、TCP/IP サーバーのポート番号 (256 と 65535 の間の整数値) を指定します。

connection'serial' である場合、ボー値 (たとえば 9600) を指定します。

'verbose' を指定した場合、進行状況に関する情報が含まれるメッセージが関数によって表示されます。このメッセージを使用して実行時のエラーをデバッグできます。

バージョン履歴

R2013a で導入