コンテンツにスキップ

関数 > アナログ入力 >

YdxAiGetEventStatus

機能

イベント発生要因を取得します。

書式

INT YdxAiGetEventStatus(
    INT id,
    INT* factor,
    INT* sampleCount,
    INT* repeatCount
);

パラメータ

id

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

言語 C# VB.NET VB6.0 C++/CLI C/C++
int Integer Long int INT

factor

イベント発生要因を格納する変数へのポインタを指定します。
ビットごとに意味を持っていて、論理和された結果が格納されます。

定義名 イベント要因
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バッファ形式に設定されている場合に、データバッファ容量を超えてサンプリングがおこなわれるとオンになります。
 定期的に YdxAiGetData関数 または YdxAiGetDataVolt関数 を使用してデータを読み出して、データバッファが満杯にならないようにしてください。
00040000h YDX_EVENT_HARDWARE_ERR ハードウェアエラー発生
 ユニット内部回路に異常が検出されるとオンになります。
 通常ありえませんが、もし発生した場合は、どのような状況で発生したかを弊社サポートまでご連絡ください。
00080000h YDX_EVENT_COMMUNICATE_ERR 通信エラー発生
 USB通信に異常が検出されるとオンになります。
 近くにノイズ要因がないか確認してください。
 確認しても問題が見当たらない場合は、どのような状況で発生したかを弊社サポートまでご連絡ください。
言語 C# VB.NET VB6.0 C++/CLI C/C++
out int Integer Long int* INT*

sampleCount

イベント発生時のサンプル数を格納する変数へのポインタを指定します。

データバッファがFIFOバッファ形式に設定されている場合、データバッファに記憶されてまだ読み出されていないサンプル数が格納されます。
データバッファがリングバッファ形式に設定されている場合、データバッファに記憶されているサンプル数が格納されます。

言語 C# VB.NET VB6.0 C++/CLI C/C++
out int Integer Long int* INT*

repeatCount

イベント発生時の動作済みリピート回数を格納する変数へのポインタを指定します。

2,147,483,647回を超えた場合、0に戻ってカウントされます。

言語 C# VB.NET VB6.0 C++/CLI C/C++
out int Integer Long int* INT*

戻り値

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

言語 C# VB.NET VB6.0 C++/CLI C/C++
int Integer Long int INT

使用例

イベント発生要因を読み出します。

C#

int result;
int factor;
int sampleCount;
int repeatCount;
result = Ydx.AiGetEventStatus(id, out factor, out sampleCount, out repeatCount);

VB.NET

Dim result As Integer
Dim factor As Integer
Dim sampleCount As Integer
Dim repeatCount As Integer
result = YdxAiGetEventStatus(id, factor, sampleCount, repeatCount)

VB6.0

Dim result As Long
Dim factor As Long
Dim sampleCount As Long
Dim repeatCount As Long
result = YdxAiGetEventStatus(id, factor, sampleCount, repeatCount)

C++/CLI

int result;
int factor;
int sampleCount;
int repeatCount;
result = YdxAiGetEventStatus(id, &factor, &sampleCount, &repeatCount);

C/C++

INT result;
INT factor;
INT sampleCount;
INT repeatCount;
result = YdxAiGetEventStatus(id, &factor, &sampleCount, &repeatCount);

参考

  • AiEvent

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