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