割り込み待機

Namespace: FVIL.Dio
Assembly: 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.DiIntStatusDI割り込み発生時に、どのbitが入力されたかが格納されます。ビット毎に入力されたDIが格納されます。

エラーコード:

ErrorCode メンバ内容
25FVIL.ErrorCode.NOT_OPENEDデバイスがオープンされていません。
13202FVIL.Dio.ErrorCode.FAILED_TO_ACCESS設定、取得に失敗しました。
53FVIL.ErrorCode.TIMEOUTタイムアウトが発生しました。
13204FVIL.Dio.ErrorCode.ABORTAbortが呼び出されました。

Remarks

引数設定(CFviWaitEventParam):

引数意味
CFviWaitEventParam.Timeoutタイムアウト設定。ms単位で指定してください。0xFFFFFFFFを指定すると無限待ちとなります。 ミリ秒単位で指定できますが、精度は秒単位です。1000 未満の桁は切り捨てます。
CFviWaitEventParam.IntEnableINT割り込みのEnable(=1)/Disable(=0)を設定します。Enableに設定した場合、INT割り込みが入った際に本関数から返ってきます。
CFviWaitEventParam.DiIntEnableDI割り込みのEnable/Disableを設定します。ビット単位で指定してください。
CFviWaitEventParam.DiIntModeDI割り込みのモードを設定します。OR(=0)に指定した場合、複数指定したDI割り込みのどれか一つが入力されたら、本関数から返ってきます。 AND(=1)に指定した場合、複数指定したDI割り込みのすべてが入力された時に、本関数から返ります。このとき、同時にDI割り込み信号が入る必要はありません。

本関数からは、以下の条件は発生した場合に返ってきます

  • 指定された割り込みが入力された -
  • タイムアウトが発生した -
  • Abortが呼び出された。( Close()()()() 時、内部で Abort を呼び出しています ) -
  • エラーが発生した ( Open(Int32) されていない、など)

タイムアウト発生時、または、Abort()()()()呼び出し時、本関数は例外をスローします。タイムアウト、Abort、その他のエラーを判別する際は、 CFviException の引数を参照するか、 Status にて、ステータスを確認してください。

割り込み待機パラメータ(CFviWaitEventParam)にて、INT割り込み有効・DI割り込み有効に設定した場合、 InterruptCtrlDi, InterruptCtrlInt の割り込み設定も 有効にする必要があります。

1つのクラスでは、同じタイミングで複数の割り込み待機(WaitEvent)はできません。同じタイミングで複数の割込み待ちをしたい場合は、必ずCFviDioII320クラスを複数作成し、本メソッドで待機してください。

See Also