YdxAiSetEvent¶
機能¶
イベントを設定します。
書式¶
INT YdxAiSetEvent(
INT id,
INT* mask,
HANDLE* hEvent
);
パラメータ¶
id¶
YdxOpen関数 で取得したIDを指定します。
言語 | C# | VB(.NET2002以降) | VB6.0 | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | int | Integer | Long | int | INT |
mask¶
イベント要因を指定します。
指定した要因となった時に、イベントを発生させる事ができます。
値 | 定義名 | イベント要因 |
---|---|---|
00000001h | YDX_EVENT_STOP | 動作終了 動作が終了するとイベントを発生させます。 |
00000002h | YDX_EVENT_SAMPLE_NUM | 監視サンプル数 データバッファのデータが、監視サンプル数以上になった場合にイベントを発生させます。 監視サンプル数は、YdxAiSetCheckSampleNum関数 で変更できます。 |
00000004h | YDX_EVENT_START_TRIG | 開始条件成立 開始条件が成立するとイベントを発生させます。 リピートの場合、開始条件が成立するたびにイベントを発生させます。 |
00000008h | YDX_EVENT_STOP_TRIG | 停止条件成立 停止条件が成立するとイベントを発生させます。 リピートの場合、停止条件が成立するたびにイベントを発生させます。 |
00010000h | YDX_EVENT_SAMPLE_CLOCK_ERR | サンプリングクロックエラー発生 外部クロック使用時に、周期が早すぎる外部クロックが入力された場合にイベントを発生させます。 |
00020000h | YDX_EVENT_OVERRUN_ERR | オーバランエラー発生 データバッファがFIFOバッファ形式に設定されている場合に、データバッファ容量を超えてサンプリングがおこなわれた場合にイベントを発生させます。 |
00040000h | YDX_EVENT_HARDWARE_ERR | ハードウェアエラー発生 ユニット内部回路に異常が検出した場合にイベントを発生させます。 |
00080000h | YDX_EVENT_COMMUNICATE_ERR | 通信エラー発生 USB通信に異常が検出された場合にイベントを発生させます。 |
論理和をおこなう事で、複数の要因を組み合わせて指定できます。
言語 | C# | VB(.NET2002以降) | VB6.0 | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | int | Integer | Long | int | INT |
hEvent¶
イベントオブジェクトのハンドルを指定します。
言語 | C# | VB(.NET2002以降) | VB6.0 | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | IntPtr | IntPtr | Long | IntPtr | HANDLE |
戻り値¶
関数が正常に終了した場合は、0(YDX_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は、0以外が返ります。
詳細は、戻り値一覧 を参照してください。
言語 | C# | VB(.NET2002以降) | VB6.0 | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | int | Integer | Long | int | INT |
備考¶
本関数は、アナログ入力が 動作中 には実行できません。
使用例¶
イベントを設定します。
イベント要因を「監視サンプル数」と「動作終了」に設定します。
C#¶
int result;
AutoResetEvent hEvent = new AutoResetEvent(false);
result = Ydx.AiSetEvent(id, YDX_EVENT_SAMPLE_NUM| YDX_EVENT_STOP, hEvent);
VB(.NET2002以降)¶
Dim result As Integer
Dim hEvent As AutoResetEvent = New AutoResetEvent(False)
result = YdxAiSetEvent(id, YDX_EVENT_SAMPLE_NUM| YDX_EVENT_STOP, hEvent)
VB6.0¶
Dim result As Long
Dim hEvent As Long
hEvent = CreateEvent(0, False, False, 0)
result = YdxAiSetEvent(id, YDX_EVENT_SAMPLE_NUM| YDX_EVENT_STOP, hEvent)
C++/CLI¶
int result;
AutoResetEvent^ hEvent = gcnew AutoResetEvent(false);
result = YdxAiSetEvent(id, YDX_EVENT_SAMPLE_NUM| YDX_EVENT_STOP, hEvent->Handle);
C/C++¶
INT result;
HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
result = YdxAiSetEvent(id, YDX_EVENT_SAMPLE_NUM| YDX_EVENT_STOP, hEvent);
参考¶
-
高機能アナログ入力のサンプルプログラムです。
動作状態の監視をイベントでおこなっています。