自動シリアルポーリングの概要
SRQラインがアサートされたときにアプリケーションが自動的にシリアルポールを実行するようにするには、自動シリアルポーリングを有効にします。従来のデバイスレベルの呼び出しのみで、自動シリアルポーリングを使用することができます。自動ポーリングは、以下の手順で実行されます。
- 自動ポーリングは、デフォルトでは有効になっています。自動ポーリングを無効にするには、ibconfig構成関数をIbcAUTOPOLLオプションを指定して使用するか、Measurement & Automation Explorerを使用します。
- SRQラインがアサートされると、ドライバは開いているデバイスに対して自動的にシリアルポールを実行します。
- 肯定的なシリアルポールの応答(ビット6つまり16進の40が設定されている)は、それを送信したデバイスに対応した待ち行列に格納されます。デバイスのステータスワードIbstaのRQSビットが設定されています。
- SRQのアサートが解除されるまで、またはエラーが検出されるまでポーリングは続行されます。
- 待ち行列を空にするには、ibrsp関数を使用します。 ibrspは最初に待ち行列に入った応答を返します。その他の応答は、先入れ先出し(FIFO)形式で読み取られます。ibrspが呼び出された時に、ステータスワードのRQSビットが設定されていないと、シリアルポールが実行され、受信した応答を返します。自動シリアルポールが発生したら即座に待ち行列を空にする必要があります。
- ibrspが呼び出された後で、ステータスワードのRQSビットが設定されたままの場合は、応答バイト待ち行列には、少なくとももう1つ応答バイトが残ってます。この場合、RQSがクリアされるまで、ibrspを呼び出し続ける必要があります。
関連項目:
デバイスレベルの従来のNI-488.2コールを使用したシリアルポーリング