GpPollEx

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を指定)

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

Ret = GpPollEx(Cmd, Pstb, Psrq)

 

(C言語用)

DWORD Ret;

DWORD *Cmd;

DWORD *Pstb;

DWORD *Psrq;

Ret = GpPollEx(Cmd, Pstb, Psrq);

 

(C#用)

uint Ret;

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

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

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

Ret = gpib.PollEx(Cmd, Pstb, Psrq);

 

(Python用)

Ret = ctypes.c_ulong()

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

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

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

Ret.value = GpibPy.GpPollEx(Cmd, Pstb, Psrq)

 

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

 

■引数
Cmd    :    コマンド配列

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

[1] 相手機器アドレス

[2] 相手機器アドレス

 

Pstb   :    (出力)返送されたステータスバイト配列

[0] 意味を持ちません

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

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

 

Pstbのステータスバイト

        

 

Psrq    :    (出力)SRQが見つかったかどうかのステータス

SRQが見つかった場合1、そうでない場合0が入ります。

[0] SRQが見つかった機器数

[1] Cmd(1)に設定した機器のSRQステータス

[2] Cmd(2)に設定した機器のSRQステータス

Psrqのステータス

                          

Ret   :   終了情報(戻り値)

0       :   正常終了(SRQを送出した機器あり)

80     :   初期化未実行

128   :   正常終了(SRQを送出した機器なし)

140   :   非同期関数の実行中

240   :   ESCキーが押された

252   :   GPIBエラー

254   :   タイムアウト

255   :   不正呼び出し

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

 

■補足

①GpPollと違い、複数の機器を指定した場合、SRQの有無に関わらずすべての機器に対しシリアルポールを行ないます。

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

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

Cmd(0) = 3

Cmd(1) = 2

Cmd(2) = 5

Cmd(3) = 17

Ret = GpPollEx(Cmd(0), Pstb(0), Psrq(0))

 

実行結果

Ret   : 0

Pstb(1)   : 40H

Pstb(2)   : 20H

Pstb(3)   : 60H

Psrq(0)   : 2

Psrq(1)   : 1

Psrq(2)   : 0

Psrq(3)   : 1

 

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

 

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