割り込み待機

Namespace: FVIL.Dio
Assembly: 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.DiIntStatusDI割り込み発生時に、割込みが発生した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 メンバ内容
25FVIL.ErrorCode.NOT_OPENEDデバイスがオープンされていません。
8FVIL.ErrorCode.FAILED_TO_EXECUTE実行に失敗しました。Abort() が呼ばれたか、WaitEvent中にWaitEventがコールされました。
11FVIL.ErrorCode.INVALID_PARAMETER引数が間違っています。
53FVIL.ErrorCode.TIMEOUTタイムアウトが発生しました。

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also