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

YdxAoSetData

機能

データをバイナリ値で設定します。

書式

INT YdxAoSetData(
    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++
int Integer Long int INT

data

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

(例)サンプル数=1000、有効チャネル=CH0・CH1・CH3の場合、データは以下の順番で格納してください。

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

データの値の範囲は、-32768~32767です。
電圧値からの換算式は以下のとおりです。
data = 電圧値 * 32767 / 10

言語 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バッファ形式に設定されている時は、残っていたデータの後に追加されます。

データバッファにデータが残った状態のまま、YdxAoSetBuffer関数YdxAoSetChannel関数 により設定が変更された場合、データはクリアされます。
設定を変更する場合は本関数の実行前におこなってください。

本関数は、データバッファがリングバッファ形式に設定されている時は、アナログ出力が 動作中 は実行できません。
(データバッファがFIFOバッファ形式に設定されている時は、アナログ出力が動作中でも実行できます)

使用例

1000サンプリング分のデータを設定します。
(有効なチャネル数は4チャネルになっていて、データは15,000にする場合)

C#

int result;
int[] data = new int[4000];
int i;
for (i = 0; i < 4000; i++)
{
    data[i] = 15000;
}
result = Ydx.AoSetData(id, 1000, data);

VB(.NET2002以降)

Dim result As Integer
Dim data(3999) As Integer
Dim i As Integer
For i = 0 To 3999
    data(i) = 15000
Next
result = YdxAoSetData(id, 1000, data)

VB6.0

Dim result As Long
Dim data(3999) As Long
Dim i As Long
For i = 0 To 3999
    data(i) = 15000
Next
result = YdxAoSetData(id, 1000, data(0))

C++/CLI

int result;
int data[4000];
int i;
for (i = 0; i < 4000; i++)
{
    data[i] = 15000;
}
result = YdxAoSetData(id, 1000, data);

C/C++

INT result;
INT data[4000];
INT i;
for (i = 0; i < 4000; i++)
{
    data[i] = 15000;
}
result = YdxAoSetData(id, 1000, data);