指定個数転送完了のメッセージを通知するように設定します。
Ret = DioDmSetCountEvent ( Id , Direction , Count , hWnd )
Id
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
DioInitで取得したデバイスIDを指定します。
Direction
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
転送方向を設定してください。
定義 |
値 [Dec] |
意味 |
DIODM_DIR_IN |
1 |
入力 |
DIODM_DIR_OUT |
2 |
出力 |
Count
[ VB.NET: Integer ] [ C, C++: unsigned long ] [ C#: uint ] [ Python: ctypes.c_ulong
]
データ転送個数を何個毎にメッセージを通知するかを設定してください。
デバイス名称 |
設定可能範囲 |
DIO-32DM3-PE |
3 ≦Count ≦536,870,912(20000000H) |
PIO-32DM(PCI) |
1 ≦Count≦16,777,215(FFFFFFH) |
hWnd
[ VB.NET: IntPtr ] [ C, C++: HWND ] [ C#: IntPtr ] [ Python: ctypes.wintypes.HANDLE
]
指定個数転送完了メッセージを受け取るウィンドウハンドルを指定します。
ウィンドウハンドルは、VCの場合は、m_hWndで取得できます。
ウインドウメッセージを使用せず、コールバックを使用されたい場合は0を指定してください。
Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]
定義 |
値 [Dec] |
意味 |
DIO_ERR_SUCCESS |
0 |
正常終了 |
DIO_ERR_SYS_RECOVERED_FROM_STANDBY |
7 |
スタンバイモードから復帰したため、DioResetDevice関数を実行してください |
DIO_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
DIO_ERR_DLL_CALL_DRIVER |
10002 |
ドライバーを呼び出せません(デバイスI/Oコントロールに失敗)。 |
DIO_ERR_SYS_NOT_SUPPORTED |
20001 |
このデバイスではこの関数は使用できません。 |
DIO_ERR_SYS_IODIRECTION |
20500 |
入出力方向が設定範囲外です。 |
DIO_ERR_SYS_COUNT |
21010 |
データ転送個数が設定範囲外です。 |
その他のエラー(参照:エラーコード詳細)
なし
この関数を使用すると、サンプリング/ジェネレーティングの途中にコールバック関数で指定個数の転送完了を通知させることができます。
入出力の周期に対して、Countで指定する個数が小さすぎた場合、速度的に速すぎてメッセージを通知できない場合があります。また、割り込みが頻繁に発生することによって、転送エラーの原因になることがあります。
hWndにウインドウハンドルを指定した場合、サンプリング/ジェネレーティングが完了した時点で、指定したウィンドウハンドルに、DIO_DMM_COUNT
= 1360HのメッセージがPostMessageされます。
メッセージのパラメータである、wParam、lParamには、それぞれ以下の情報が入ります。
LOWORD(wParam)=DioInit関数で取得したID
LOWORD(lParam)=転送方向 DIODM_DIR_IN もしくは、DIODM_DIR_OUT
※HIWORD、LOWORDは、それぞれ上位ワード、下位ワードを表します。
メッセージ処理の記述方法詳細については、各言語のサンプルプログラムを参照してください。
入力転送指定個数転送完了のメッセージを通知を設定します。データ転送個数は10000回です。
VB.NET |
Dim Ret As Integer |
C, C++ |
long Ret; |
C# |
int Ret; |
Python |
Ret = ctypes.c_long() |
DioDmTransferStart DioSetCountCallBackProc