設定例

VB.NET用

Dim wMsg As Short

Dim hWnd As Integer

Dim Ret, SrqOn As Integer

 

wMsg = WM_USER + &H30S   ' 0x400~0x7FFFの任意の番号

   ' WM_USER = 0x400

hWnd = Handle.ToInt32   ' Handleは現在実行中のプロシージャのハンドル

SrqOn = 1   ' イベント発生

Ret = GpSrqEventEx(hWnd, wMsg, SrqOn)

 

' イベントを受け取るルーチン

Select Case message   ' messageは実行中のプロシージャが受け取る第2引数

Case WM_USER + &H30:   ' WM_USER + 0x30はGpSrqEventExで設定した値

   ...   ' 必要な処理を記述

   Ret = GpPoll(cmd, fstb)

   ...

   Ret = GpSrqOn()

End Select

 

C言語用

WORD   wMsg;

HANDLE   hWnd;

DWORD   Ret, SrqOn;

 

wMsg = WM_USER + 0x30;   /* 0x400~0x7FFFの任意の番号 */

   /* WM_USER = 0x400 */

hWnd = hDlg;   /* hDlgは現在実行中のプロシージャのハンドル */

SrqOn = 1;   /* イベント発生 */

Ret = GpSrqEventEx(hWnd, wMsg, SrqOn);

 

/* イベントを受け取るルーチン */

switch(message){   /* messageは実行中のプロシージャが受け取る第2引数 */

case WM_USER + 0x30:   /* WM_USER + 0x30はGpSrqEventExで設定した値 */

...   /* 必要な処理を記述 */

   Ret = GpPoll(cmd, fstb);

   ...

   Ret = GpSrqOn();

   break;

}

 

C#用

short wMsg;

int hWnd;

uint Ret, SrqOn;

 

wMsg = WM_USER + 0x30;   /* 0x400~0x7FFFの任意の番号 */

   /* WM_USER = 0x400 */

hWnd = this.Handle.ToInt32();   /* this.Handleは現在実行中のプロシージャのハンドル */

SrqOn = 1;   /* イベント発生 */

Ret = gpib.SrqEventEx(hWnd, wMsg, SrqOn);

 

/* イベントを受け取るルーチン */

switch(message){   /* messageは実行中のプロシージャが受け取る第2引数 */

case WM_USER + 0x30:   /* WM_USER + 0x30はgpib.SrqEventExで設定した値 */

...   /* 必要な処理を記述 */

   Ret = gpib.Poll(cmd, fstb);

   ...

   Ret = gpib.SrqOn();

   break;

}

 

Python用

wMsg = ctypes.c_ushort()

Ret, SrqOn = ctypes.c_ulong(), ctypes.c_ulong()

 

wMsg.value = WM_USER + 0x30   # 0x400~0x7FFFの任意の番号

   # WM_USER = 0x400

hWnd = ctypes.windll.user32.FindWindowW(0, "Name")    # "Name"は現在実行中のプロシージャのキャプション

SrqOn.value = 1   # イベント発生

Ret.value = GpibPy.GpSrqEventEx(hWnd, wMsg, SrqOn)

 

# イベントを受け取るルーチン

# messageは実行中のプロシージャが受け取る第2引数

if message == WM_USER + 0x30:   # WM_USER + 0x30はGpSrqEventExで設定した値

   ... # 必要な処理を記述

   Ret.value = GpibPy.GpPoll(cmd, fstb)

   ...

   Ret.value = GpibPy.GpSrqOn()