AioSetCntEvent


機能

カウンタに関するWindowメッセージ通知のイベント要因を設定します。

書式

Ret = AioSetCntEvent ( Id , CntChannel , hWnd , CntEvent )

引数

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
AioInit 関数で取得したデバイスIDを指定します。

CntChannel [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
カウンタのチャネルを設定します。

hWnd [ VB.NET: IntPtr ] [ C, C++: HWND ] [ C#: IntPtr ] [ Python: ctypes.wintypes.HANDLE ]
Windowハンドルを指定します。

CntEvent [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]
イベント要因を以下の範囲からマクロもしくは数値で指定します。
CntEventはビット単位で以下のような意味を持ち、これらを組み合わせて指定可能です。

イベント要因

マクロ

比較カウント一致イベント

CNTE_DATA_NUM

00000010H

カウントオーバーランイベント

CNTE_ORERR

00010000H

カウンタ動作エラー

CNTE_ERR

00020000H

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

戻り値

内容

0

正常終了

7

スタンバイモードから復帰したため、AioResetDevice関数を実行してください

10001

無効なIDが指定されました
関数に指定するIDは、AioInitで取得したIDを使用してください。

10002

ドライバを呼び出せません
始めにAioInit関数を実行しください。

15080

CntChannelの値が関数の指定範囲外です

20001

使用しているデバイスではこの関数を使用することができません

20002

デバイスが動作中のため実行できません
この関数を使用するには、カウンタ動作が停止している必要があります。

20003

他のプロセスがデバイスを使用しているため、実行できません
他のプロセスがデバイスを使用しているときは、マルチプロセス対応関数以外実行できません。

25080

CntChannelの値がデバイスの指定範囲外です

初期値

全てのデバイスでCntEvent = 0(イベント未使用)

説明

この関数で設定されたイベント要因は、イベントメッセージルーチンにメッセージとして通知されます。
メッセージの種類は次の通りです。

カウンタメッセージ要因

マクロ

比較カウント一致イベント

AIOM_CNTE_DATA_NUM

1042H

カウントオーバーランイベント

AIOM_CNTE_ORERR

1043H

カウント動作エラーイベント

AIOM_CNTE_ERR

1044H

カウンタ機能を持たないデバイスでは使用できません。
デバイスが動作中の場合、この関数は実行できません。
コールバックルーチン(AioSetCntCallBackProc)との併用はできません。

使用例

チャネル0に比較カウント一致イベントを設定します。

VB.NET

WndProc使用

Dim Ret As Integer
Ret = AioSetCntEvent ( Id , 0 , Handle , AIOM_CNTE_DATA_NUM)
 

C, C++

long Ret;
Ret = AioSetCntEvent ( Id , 0 , m_hWnd , AIOM_CNTE_DATA_NUM );
 

C#

WndProc使用

int Ret;
Ret = AioSetCntEvent ( Id , 0 , Handle , (int)CaioConst.AIOM_CNTE_DATA_NUM );
 

Python

Ret = ctypes.c_long()
handle = ctypes.windll.user32.FindWindowW(0, "割り込み")
Ret.value = caio.AioSetCntEvent ( Id , 0 , handle , caio.AIOM_CNTE_DATA_NUM )
 



イベントメッセージルーチン

Visual Basic .NET使用時のイベントメッセージルーチン(WndProc使用)

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
m.Msg
:メッセージ番号が渡されます。
m.WParam
:下位2バイトにIDが渡されます。上位2バイトにはイベントを発生したカウンタのチャネルが渡されます。
m.LParam
:イベントごとに固有のパラメータが渡されます。

Visual C#使用時のイベントメッセージルーチン(WndProc使用)

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
protected override void WndProc (ref Message m)
m.Msg
:メッセージ番号が渡されます。
m.WParam
:下位2バイトにIDが渡されます。上位2バイトにはイベントを発生したカウンタのチャネルが渡されます。
m.LParam
:イベントごとに固有のパラメータが渡されます。

Visual C++ (MFC)使用時のイベントメッセージルーチン

LRESULT CVC6Dlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
message:
メッセージ番号が渡されます。
wParam:
下位2バイトにIDが渡されます。上位2バイトにはイベントを発生したカウンタのチャネルが渡されます。
lParam:
イベントごとに固有のパラメータが渡されます。

イベントメッセージルーチンには、メッセージ番号、ID、イベントごとの固有パラメータの3つの引数が渡されます。
メッセージ番号、イベントごとの固有パラメータの詳細は表の通りです。

メッセージ番号

カウンタメッセージ要因

マクロ

比較カウント一致イベント

AIOM_CNTE_DATA_NUM

1042H

カウントオーバーランイベント

AIOM_CNTE_ORERR

1043H

カウント動作エラーイベント

AIOM_CNTE_ERR

1044H

イベントごとの固有パラメータ

現在のカウンタ値が渡されます。
比較カウント一致イベント発生時は、AioSetCntComparisonRegで指定した値が渡されます。