コンテンツにスキップ
関数 > アナログ入力 >

YdxAiGetData

機能

データをバイナリ値で取得します。

書式

INT YdxAiGetData(
    INT id,
    INT* sampleNum,
    INT* data
);

パラメータ

id

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

言語 C# VB(.NET2002以降) VB6.0 C++/CLI C/C++
int Integer Long int INT

sampleNum

読み出したいサンプル数を格納した変数へのポインタを指定します。
データ数ではなく、サンプル数で指定してください。
関数実行後には、実際に読み出されたサンプル数が格納されます。

言語 C# VB(.NET2002以降) VB6.0 C++/CLI C/C++
ref int Integer Long int* INT*

data

データを格納する変数へのポインタを指定します。
(sampleNum * 有効なチャネル 数)個分の配列を用意してください。

(例)サンプル数=1000、有効チャネル=CH0・CH1・CH4の場合、データは以下の順番で格納されます。

データ CH0 CH1 CH4 CH0 CH1 CH4 ・・・ CH0 CH1 CH4 CH0 CH1 CH4
サンプル数 1 1 1 2 2 2 ・・・ 999 999 999 1000 1000 1000
データ数 1 2 3 4 5 6 ・・・ 2995 2996 2997 2998 2999 3000

データの値の範囲は、-30000~30000です。
電圧値への換算式は以下のとおりです。

  • 電圧値 = data / 30000 * 10(±10Vレンジの場合)
  • 電圧値 = data / 30000 * 5(±5Vレンジの場合)
言語 C# VB(.NET2002以降) VB6.0 C++/CLI C/C++
int[] Integer Long int* INT*

戻り値

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

言語 C# VB(.NET2002以降) VB6.0 C++/CLI C/C++
int Integer Long int INT

備考

データバッファ形式によって以下の動作となります。

FIFOバッファ形式の場合

  • 古いデータを指定したサンプル数(sampleNum)読み出します。
  • 読み出されたデータはデータバッファから破棄されます。
  • アナログ入力が 動作中 でも実行できます。

リングバッファ形式の場合

  • 新しいデータを指定したサンプル数(sampleNum)読み出します。
  • 読み出されたデータはデータバッファから破棄されません。
    (再度読み出す事が可能)
  • アナログ入力が 動作中 は実行できません。

使用例

1000サンプリング分のデータを取得します。
(有効なチャネル数は、6チャネルの場合)

C#

int result;
int sampleNum = 1000;
int[] data = new int[6000];
result = Ydx.AiGetData(id, ref sampleNum, data);

VB(.NET2002以降)

Dim result As Integer
Dim sampleNum As Integer = 1000
Dim data(5999) As Integer
result = YdxAiGetData(id, sampleNum, data)

VB6.0

Dim result As Long
Dim sampleNum As Long
Dim data(5999) As Long
sampleNum = 1000
result = YdxAiGetData(id, sampleNum, data(0))

C++/CLI

int result;
int sampleNum = 1000;
int data[6000];
result = YdxAiGetData(id, &sampleNum, data);

C/C++

INT result;
INT sampleNum = 1000;
INT data[6000];
result = YdxAiGetData(id, &sampleNum, data);