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