■VB.NET用
Dim Ret, Srlen, Cmd(31) As Integer
Dim ErrCode As Integer
Dim Srbuf(256) As Byte
Cmd(0) = 2 ' トーカ+リスナ数(マスタモード時)
Cmd(1) = 3 ' トーカアドレス
Cmd(2) = 1 ' リスナアドレス
Srlen = 256 ' 最大受信可能バイト長
Ret = GpListenAsync(Cmd, Srlen, Srbuf)
' 終了確認
While True
Ret = GpCheckAsync(0, ErrCode)
If (Ret != 140) Then
Exit While
End If
End While
■C言語用
DWORD Ret, Srlen, Cmd[31];
DWORD ErrCode;
BYTE Srbuf[256];
Cmd[0] = 2; /* トーカ+リスナ数(マスタモード時)*/
Cmd[1] = 3; /* トーカアドレス */
Cmd[2] = 1; /* リスナアドレス */
Srlen = 256; /* 最大受信可能バイト長 */
Ret = GpListenAsync(Cmd, &Srlen, Srbuf);
/* 終了確認 */
while (TRUE) {
Ret = GpCheckAsync(0, &ErrCode);
if (Ret != 140) {
break;
}
}
■C#用
uint Ret, Srlen;
uint[] Cmd = new uint[31];
uint ErrCode;
StringBuilder Srbuf = new StringBuilder(256);
Cmd[0] = 2; /* トーカ+リスナ数(マスタモード時)*/
Cmd[1] = 3; /* トーカアドレス */
Cmd[2] = 1; /* リスナアドレス */
Srlen = 256; /* 最大受信可能バイト長 */
Ret = gpib.ListenAsync(Cmd, out Srlen, Srbuf);
/* 終了確認 */
while (TRUE) {
Ret = gpib.CheckAsync(0, out ErrCode);
if (Ret != 140) {
break;
}
}
■Python用
Ret, Srlen, Cmd = ctypes.c_ulong(), ctypes.c_ulong(), (ctypes.c_ulong * 31)()
ErrCode = ctypes.c_ulong()
Srbuf = (ctypes.c_ubyte * 256)()
Cmd[0] = 2 # トーカ+リスナ数(マスタモード時)
Cmd[1] = 3 # トーカアドレス
Cmd[2] = 1 # リスナアドレス
Srlen.value = 256 # 最大受信可能バイト長
Ret.value = GpibPy.GpListenAsync(Cmd, ctypes.byref(Srlen), Srbuf)
# 終了確認
while True:
Ret.value = GpibPy.GpCheckAsync(0, ctypes.byref(ErrCode))
if Ret.value != 140:
break