コンテンツにスキップ

関数 > アナログ入力 >

YdxAiSetEvent

機能

イベントを設定します。

書式

INT YdxAiSetEvent(
    INT id,
    INT* mask,
    HANDLE* hEvent
);

パラメータ

id

YdxOpen関数 で取得したIDを指定します。

言語 C# VB.NET 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.NET VB6.0 C++/CLI C/C++
int Integer Long int INT

hEvent

イベントオブジェクトのハンドルを指定します。

言語 C# VB.NET VB6.0 C++/CLI C/C++
IntPtr IntPtr Long IntPtr HANDLE

戻り値

関数が正常に終了した場合は、0(YDX_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は、0以外が返ります。
詳細は、戻り値一覧 を参照してください。

言語 C# VB.NET 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.NET

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);

参考

  • AiEvent

    高機能アナログ入力のサンプルプログラムです。
    動作状態の監視をイベントでおこなっています。