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

YdxAoSetDataVolt

機能

データを電圧値で設定します。

書式

INT YdxAoSetDataVolt(
    INT id,
    INT sampleNum,
    FLOAT* volt
);

パラメータ

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

volt

データを格納した変数へのポインタを指定します。
(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

単位は「V」です。
データの値の範囲は、-10~10 [V]です。

言語 C# VB(.NET2002以降) VB6.0 C++/CLI C/C++
float[] Single Single float* FLOAT*

戻り値

関数が正常に終了した場合は、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チャネル、データは5.6Vの場合)

C#

int result;
float[] volt = new float[4000];
int i;
for (i = 0; i < 4000; i++)
{
    volt[i] = 5.6F;
}
result = Ydx.AoSetDataVolt(id, 1000, volt);

VB(.NET2002以降)

Dim result As Integer
Dim volt(3999) As Single
Dim i As Integer
For i = 0 To 3999
    volt(i) = 5.6
Next
result = YdxAoSetDataVolt(id, 1000, volt)

VB6.0

Dim result As Long
Dim volt(3999) As Single
Dim i As Long
For i = 0 To 3999
    volt(i) = 5.6
Next
result = YdxAoSetDataVolt(id, 1000, volt(0))

C++/CLI

int result;
float volt[4000];
int i;
for (i = 0; i < 4000; i++)
{
    volt[i] = 5.6;
}
result = YdxAoSetDataVolt(id, 1000, volt);

C/C++

INT result;
float volt[4000];
INT i;
for (i = 0; i < 4000; i++)
{
    volt[i] = 5.6;
}
result = YdxAoSetDataVolt(id, 1000, volt);