複数デバイスNI-488.2コールを使ったパラレルポーリング
複数デバイスNI-488.2コールを使って、パラレルポーリングを行うには、以下の手順に従ってください。各手順には、コード例が示されています。
- デバイスがパラレルポーリング用に自身を構成することができる場合を除き、PPollConfigコールを使って、デバイスをパラレルポーリング用に構成します。以下の例では、istの値が1の時に、データライン5(DIO5)をアサートするように、アドレス3のデバイスを構成します。
#include "ni4882.h"
char response;
Addr4882_t AddressList[2];
/* 次のコマンドがGPIBをクリアします。 */
SendIFC(0);
/* senseの値をデバイスのistビットと比較し、
データラインがアサートされたかどうかを
判断します。 */
PPollConfig(0,3,5,1); - PPollを使ってパラレルポールを行い、応答を保存して、応答の特定の値を確認します。次の例では、istが1の場合にデバイスによりDIO5がアサートされているため、プログラムは応答のビット4(16進の10)を確認して、istの値を判断します。
PPoll(0, &response);
/* 応答のビット4(16進数の10)が設定されていれば、 その時点でのデバイスのistビットは1に等しくなります。 表示されない場合は、istビットは0に等しくなります。 以下のステートメントでビットを確認してください。 */
if (response & 0x10) { printf("The ist equals 1.\n"); else { printf("The ist equals 0.\n"); } - 次の例に示すように、PPollUnconfigを使って、パラレルポーリング用に構成したデバイスを解除します。この例では、アドレスリストの終わりを示すために、配列の最後に定数NOADDRを配置する必要があります。配列の値がNOADDRだけの場合、すべてのデバイスは、パラレルポール無効のメッセージを受け取ります。
AddressList[0] = 3;
AddressList[1] = NOADDR;
PPollUnconfig(0, AddressList);
関連項目: