GpPoll

image\BLTLRGSQ.gif使用可能ボード image\SETUP.gif image\SANBTN.gif

 

 

■機能       シリアルポールを行います。この関数を複数の機器アドレスに対し実行した場合、SRQを発見した時点でポーリングを中断し、関数から戻ります。この関数においてSRQ待ちを行うことはありません。

 

■書式       

(VB.NET用)

Dim Ret As Integer

Dim Cmd(xxxx) As Integer    ' (xxxxはシリアルポールする機器数+1を指定)

Dim Pstb(xxxx) As Integer    ' (xxxxはシリアルポールする機器数+1を指定)

Ret = GpPoll(Cmd, Pstb)

 

(C言語用)

DWORD Ret;

DWORD *Cmd;

DWORD *Pstb;

Ret = GpPoll(Cmd, Pstb);

 

(C#用)

uint Ret;

uint[] Cmd = new uint[xxxx];   /* (xxxxはシリアルポールする機器数+1を指定) */

uint[] Pstb = new uint[xxxx];   /* (xxxxはシリアルポールする機器数+1を指定) */;

Ret = gpib.Poll(Cmd, Pstb);

 

(Python用)

Ret = ctypes.c_ulong()

Cmd = (ctypes.c_ulong * xxxx)   #(xxxxはシリアルポールする機器数+1を指定)

Pstb = (ctypes.c_ulong * xxxx)   #(xxxxはシリアルポールする機器数+1を指定)

Ret.value = GpibPy.GpPoll(Cmd, Pstb)

 

■モード     マスタモードのみ

 

■引数

Cmd   :   コマンド配列

[0] シリアルポールする機器数

[1] 相手機器アドレス

[2] 相手機器アドレス

 

Pstb   :   返送されたステータスバイト配列(戻り値)

[0] RQSビットONのトーカを発見した配列番号

[1] Cmd(1)に設定した機器のステータスバイト(タイムアウト時-1)

[2] Cmd(2)に設定した機器のステータスバイト(タイムアウト時-1)

Pstbのステータスバイト

 

Ret   :   終了情報(戻り値)

0       :   正常終了(SRQ送出機器あり(RQSビットON受信終了))

1       :   正常終了(SRQ送出機器あり(RQSビットONかつEOI受信終了))

80     :   初期化未実行

128   :   正常終了(SRQ送出機器なし(RQSビットONを受  信できなかった))

140   :  非同期関数の実行中

240   :   ESCキーが押された

252   :   GPIBエラー

254   :   タイムアウト

255   :   不正呼び出し

(詳細は「戻り値一覧」参照)

 

■補足

①GpPollExと違い、複数の機器を指定した場合、SRQを発見した時点でポーリングを中断します。

このため、次のような実行結果を返します。

例)機器アドレス2、5、17に対しGpPollExを実行し2、17の機器からSRQが送出されていた場合(ステータスバイトはそれぞれ40H、20H、60Hと仮定)

Cmd(0) = 3

Cmd(1) = 2

Cmd(2) = 5

Cmd(3) = 17

Ret = GpPoll(Cmd(0), Pstb(0))

 

実行結果

Ret   : 0または1

Pstb(0)   : 1

Pstb(1)   : 40H

Pstb(2)   : 0H

Pstb(3)   : 0H

 

②RQSビットONのトーカアドレスとステータスバイトを知るためには、

DWORD On, Talker, Status;

On = Pstb[0];

Talker = Cmd[On];

Status = Pstb[On];

としてください。

 

③SRQが送出(RQSビットがON)されていなくてもステータスバイトはPstb配列に格納されます。

 

④Pstb配列の内容は関数内で0初期化されます。