DioSetInterruptEvent


機能

割り込みイベント要因を設定します。

書式

Ret = DioSetInterruptEvent ( Id , BitNo , Logic )

引数

Id [ C: short ] [ Python: ctypes.c_short ]
DioInitで取得したデバイスIDを指定します。

BitNo [C: short ] [ Python: ctypes.c_short ]
入力論理ビット番号を指定します。このビット番号は、ハードウェア上で割り込みとして使用可能なビットでなければなりません。

Logic [ C: short ] [ Python: ctypes.c_short ]
割り込み論理を以下の定義値の何れかで指定します。

定義

[Dec]

意味

DIO_INT_NONE

0

割り込みをマスクする

DIO_INT_RISE

1

入力値0 -> 1

DIO_INT_FALL

2

入力値1 -> 0

戻り値

Ret [ C: long ] [ Python: ctypes.c_long ]

定義

[Dec]

意味

DIO_ERR_SUCCESS

0

正常終了

DIO_ERR_DLL_INVALID_ID

10001

無効なIDが指定されました。

DIO_ERR_DLL_CALL_DRIVER

10002

ドライバを呼び出せません(ioctlに失敗)。

DIO_ERR_SYS_NOT_SUPPORTED

20001

このデバイスではこの関数は使用できません。

DIO_ERR_SYS_INT_BIT

20200

割り込みビットが指定可能範囲外です。

DIO_ERR_SYS_INT_LOGIC

20201

割り込み論理が指定可能範囲外です。

その他のエラー(参照:エラーコード詳細

説明

割り込みイベントを開始/停止する場合に指定します。
割り込みを実際に受け付けるのはコールバック関数になります。コールバック関数はDioSetInterruptCallBackProcで指定します。

USBデバイスの場合、割り込みイベントを受け付けることができるのは1プロセスのみです。
同一のデバイスから複数プロセスに対してメッセージを送出することはできません。
なお、この機能を使用するためには、ハードウェアが割り込みをサポートしている必要があります。

Ethernetデバイスの場合
    デバイスとの通信が途切れるとプロセスの登録が解除され、イベントが通知されなくなります。
    イベント通知を再び行う場合、本関数で再度設定を行ってしてください。

     現在のプロセスの登録状況は、DioGetNetCommunicationInfo関数で確認できます。

使用例

C

Ret = DioSetInterruptEvent(Id, BitNo, DIO_INT_RISE);
 

Python

Ret = cdio.DioSetInterruptEvent(Id, BitNo, cdio.DIO_INT_RISE)
 

関連項目

DioSetInterruptCallBackProc 割り込み DioGetNetCommunicationInfo