割り込みイベント要因を設定します。
Ret = DioNotifyInterrupt ( Id , BitNo , Logic , hWnd )
Id
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
DioInitで取得したデバイスIDを指定します。
BitNo
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
入力論理ビット番号を指定します。このビット番号は、ハードウェア上で割り込みとして使用可能なビットでなければなりません。
Logic
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
割り込み論理を以下の定義値の何れかで指定します。
定義 |
値 [Dec] |
意味 |
DIO_INT_NONE |
0 |
割り込みをマスクする |
DIO_INT_RISE |
1 |
入力値0->1 |
DIO_INT_FALL |
2 |
入力値1->0 |
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_DLL_CREATE_THREAD |
10005 |
スレッドの作成に失敗しました(CreateThread失敗)。 |
DIO_ERR_DLL_HWND |
10200 |
ウィンドウハンドルが指定可能範囲外です。 |
DIO_ERR_SYS_NOT_SUPPORTED |
20001 |
このデバイスではこの関数は使用できません。 |
DIO_ERR_SYS_USING_OTHER_PROCESS |
20003 |
他のプロセスがデバイスを使用しているため、実行できません。 |
DIO_ERR_SYS_BIT_NO |
20102 |
ビット番号が指定可能範囲を超えています。 |
DIO_ERR_SYS_INT_BIT |
20200 |
割り込みビットが指定可能範囲外です。 |
DIO_ERR_SYS_INT_LOGIC |
20201 |
割り込み論理が指定可能範囲外です。 |
その他のエラー(参照:エラーコード詳細)
割り込みはマスクされています。
割り込みイベントを開始/停止する場合に指定します。
割り込みとは入力ビットの立ち上がりもしくは立下りをハードウェアで検出して通知する機能を示します。
割り込みとして使用可能な入力ビットの位置と数は、デバイスによって異なります。
詳細は、各デバイスのハードウェア仕様をご覧ください。
また、割り込み論理は立ち上がりもしくは立下りのどちらか一方になります。
ソフトウェアのパラメータであるDIO_INT_RISE、DIO_INT_FALLは、それぞれ入力値の0→1、入力値の1->0を表します。
電圧レベルからみた場合、ボードが正論理であるか負論理であるかによって、立ち上がり、立下りが異なりますので、ご注意ください。
割り込みが発生すると、指定したウィンドウハンドルに、DIOM_INTERRUPT=1300HのメッセージがPostMessageされます。
メッセージのパラメータである、wParam、lParamには、それぞれ以下の情報が入ります。
LOWORD(wParam) = DioInit関数で取得したID
LOWORD(lParam) = 割り込みビット番号
HIWORD(lParam) = 立ち上がり:1、立ち下がり:2
※HIWORD、LOWORDは、それぞれ上位ワード、下位ワードを表します。
USBデバイスの場合、割り込みイベントを受け付けることができるのは1プロセスのみです。
同一のデバイスから複数プロセスに対してメッセージを送出することはできません。
なお、この機能を使用するためには、ハードウェアが割り込みをサポートしている必要があります。
メッセージ処理の記述方法詳細については、各言語のサンプルプログラムを参照してください。
複数のビットの割り込みを有効にするには、この関数を各ビットに対して呼び出してください。
Ethernetデバイスの場合
デバイスとの通信が途切れるとプロセスの登録が解除され、イベントが通知されなくなります。
イベント通知を再び行う場合、本関数で再度設定を行ってしてください。
現在のプロセスの登録状況は、DioGetNetCommunicationInfo関数で確認できます。
論理ビット0の0->1変化を監視します。
VB.NET |
Dim Ret As Integer |
C, C++ |
long Ret; |
C# |
int Ret; |
Python |
Ret = ctypes.c_long() |