複数デバイスNI-488.2コールを使用したシリアルポーリング

NI-488.2

複数デバイスNI-488.2コールを使用したシリアルポーリング

NI-488.2ソフトウェアには、SRQサービスとシリアルポーリングを実行するための複数デバイス用NI-488.2コールセットが含まれています。SRQサービスとシリアルポーリングに関係するコールは、AllSpollReadStatusByteFindRQSTestSRQ、およびWaitSRQです。次に、それぞれのコールについて説明します。

  1. AllSpollは、1回のコールで複数のデバイスに対してシリアルポールを実行できます。ポールされた計測器からのステータスバイトを事前に定義された配列に挿入します。次に、各ステータスバイトのRQSビットをチェックして、そのデバイスがサービスを要求したかどうかを確認する必要があります。
  2. ReadStatusByteは、1つのデバイスからのみシリアルポールを実行するという点以外は、AllSpollと同じです。さらに、デバイスレベルの従来のNI-488.2コールであるibrspにも似ています。
  3. FindRQSは、サービスを要求しているデバイスを見つけるまで、またはリストのすべてのデバイスをポールするまでデバイスリストに対してシリアルポールを実行します。コールは、サービスを要求しているデバイスの指標とステータスバイト値を返します。
  4. TestSRQは、SRQラインがアサートされたかどうかを判断し、直ちにプログラムに戻ります。
  5. WaitSRQは、SRQがアサートされるかタイムアウト時間が経過するまでWaitSRQがアプリケーションを停止する点以外は、TestSRQと同様に機能します。

次の例では、上記のコールを使って、SRQを検出し、どのデバイスがサービスを要求したかを判断します。これらの例では、3つのデバイスがGPIBのアドレス3、4、5にあり、GPIBインタフェースは、バス指標0に指定されています。 最初の例では、FindRQSを使って、どのデバイスがサービスを要求しているかを判断し、2番目の例では、AllSpollを使って、3つのすべてのデバイスにシリアルポールを行います。さらに、両方の例で、WaitSRQを使って、GPIB SRQラインがアサートされるのを待機します。

例1: FindRQSを使用する
例2: AllSpollを使用する

関連項目:

AllSpoll

自動シリアルポーリングの概要

FindRQS

IBRSP

IBRSV

シリアルポーリングの概要

デバイスレベルの従来のNI-488.2コールを使用したシリアルポーリング

デバイスからのサービス要求