割り込み待機
Namespace: FVIL.DioAssembly: FVILdevice (in FVILdevice.dll) Version: 3.1.0.0 (3.1.0.5)
Syntax
C# |
---|
public virtual CFviWaitEventInfo WaitEvent( CFviWaitEventParam param ) |
Visual Basic |
---|
Public Overridable Function WaitEvent ( param As CFviWaitEventParam ) As CFviWaitEventInfo |
Parameters
- param
- Type: FVIL.Dio..::..CFviWaitEventParam
割り込み待ちの条件設定
Return Value
Type: CFviWaitEventInfo割り込み発生時の状態を返します。
戻り値 (CFviWaitEventInfo):
戻り値 | 意味 |
---|---|
CFviWaitEventInfo.DI | 割り込み入力時のDIデータ |
CFviWaitEventInfo.Status | どの割り込みが入ったかの情報が格納されます。本パラメータで、Timeout / Abortが発生したかも取得できます。 |
CFviWaitEventInfo.DiIntStatus | DI割り込み発生時に、どのbitが入力されたかが格納されます。ビット毎に入力されたDIが格納されます。 |
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
25 | FVIL.ErrorCode.NOT_OPENED | デバイスがオープンされていません。 |
13202 | FVIL.Dio.ErrorCode.FAILED_TO_ACCESS | 設定、取得に失敗しました。 |
53 | FVIL.ErrorCode.TIMEOUT | タイムアウトが発生しました。 |
13204 | FVIL.Dio.ErrorCode.ABORT | Abortが呼び出されました。 |
Remarks
引数設定(CFviWaitEventParam):
引数 | 意味 |
---|---|
CFviWaitEventParam.Timeout | タイムアウト設定。ms単位で指定してください。0xFFFFFFFFを指定すると無限待ちとなります。 ミリ秒単位で指定できますが、精度は秒単位です。1000 未満の桁は切り捨てます。 |
CFviWaitEventParam.IntEnable | INT割り込みのEnable(=1)/Disable(=0)を設定します。Enableに設定した場合、INT割り込みが入った際に本関数から返ってきます。 |
CFviWaitEventParam.DiIntEnable | DI割り込みのEnable/Disableを設定します。ビット単位で指定してください。 |
CFviWaitEventParam.DiIntMode | DI割り込みのモードを設定します。OR(=0)に指定した場合、複数指定したDI割り込みのどれか一つが入力されたら、本関数から返ってきます。 AND(=1)に指定した場合、複数指定したDI割り込みのすべてが入力された時に、本関数から返ります。このとき、同時にDI割り込み信号が入る必要はありません。 |
本関数からは、以下の条件は発生した場合に返ってきます
- 指定された割り込みが入力された -
- タイムアウトが発生した -
- Abortが呼び出された。( Close()()()() 時、内部で Abort を呼び出しています ) -
- エラーが発生した ( Open(Int32) されていない、など)
タイムアウト発生時、または、Abort()()()()呼び出し時、本関数は例外をスローします。タイムアウト、Abort、その他のエラーを判別する際は、 CFviException の引数を参照するか、 Status にて、ステータスを確認してください。
割り込み待機パラメータ(CFviWaitEventParam)にて、INT割り込み有効・DI割り込み有効に設定した場合、 InterruptCtrlDi, InterruptCtrlInt の割り込み設定も 有効にする必要があります。
1つのクラスでは、同じタイミングで複数の割り込み待機(WaitEvent)はできません。同じタイミングで複数の割込み待ちをしたい場合は、必ずCFviDioII320クラスを複数作成し、本メソッドで待機してください。