割り込み待機
Namespace: FVIL.DioAssembly: FVIL1400 (in FVIL1400.dll) Version: 3.1.0.0 (3.1.0.0)
Syntax
C# |
---|
public virtual CFviWaitEventInfo WaitEvent( uint di_wait ) |
Visual Basic |
---|
Public Overridable Function WaitEvent ( di_wait As UInteger ) As CFviWaitEventInfo |
Parameters
- di_wait
- Type: System..::..UInt32
待機するDI(bit指定)
Return Value
Type: CFviWaitEventInfo割り込み発生時の状態を返します。
戻り値 (CFviWaitEventInfo):
戻り値 | 意味 |
---|---|
CFviWaitEventInfo.DI | 割り込み入力時のDIデータ |
CFviWaitEventInfo.Status | どの割り込みが入ったかの情報が格納されます。FV1400の場合、FVIL.Dio.WaitEventStatus.DiInterruptとFVIL.Dio.WaitEventStatus.Timeout のみ格納されます。それ以外で待機が終了した場合、0が格納されます。 |
CFviWaitEventInfo.DiIntStatus | DI割り込み発生時に、割込みが発生したbitを格納します。 |
Remarks
指定したDI割込みを待機します。di_waitの0bit目がDi-00となり、31bit目がDi-31です。 待機するbitを1にしてください。複数bit指定できますが、指定したbitのいずれかの割込みが入ると待機を終了します。 待機するDIは、あらかじめ InterruptCtrl で DI割り込みEnable設定をenableに設定してハードウェア割込みを有効に設定してください。
1つのクラスでは、同じタイミングで複数の WaitEvent はコールできません。同じタイミングで複数の割込み待ちをしたい場合は、必ずCFvDioFV1400クラスを複数作成し、本関数で待機してください。
本関数からは、以下の条件は発生した場合に返ってきます
- 指定した割り込みが入力された -
- タイムアウトが発生した -
- エラーが発生した ( Open(Int32) されていない、同一のクラスから同じタイミングで WaitEvent が呼ばれた、Abort が呼ばれたなど)
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
25 | FVIL.ErrorCode.NOT_OPENED | デバイスがオープンされていません。 |
8 | FVIL.ErrorCode.FAILED_TO_EXECUTE | 実行に失敗しました。Abort() が呼ばれたか、WaitEvent中にWaitEventがコールされました。 |
11 | FVIL.ErrorCode.INVALID_PARAMETER | 引数が間違っています。 |
53 | FVIL.ErrorCode.TIMEOUT | タイムアウトが発生しました。 |
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |