コンテンツにスキップ
関数 > デジタル出力 >

YdxDoSetData

機能

データを設定します。

書式

INT YdxDoSetData(
    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

データを格納した変数へのポインタを指定します。
データは、以下のフォーマットで指定します。

サンプリング MSB LSB
1回目 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0
2回目 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0
3回目 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0
OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0
OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0
OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0

設定範囲は、0~FFFFh(0~65535)です。
ただし、サンプリング時に出力が更新されるのは、チャネル設定 で高機能デジタル出力モードになっているチャネルのみです。

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

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

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

使用例

1000サンプリング分のデータを設定します。
(データは、0, 1, 2 ・・・にする場合)

C#

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

VB(.NET2002以降)

Dim result As Integer
Dim data(999) As Integer
Dim i As Integer
For i = 0 To 999
    data(i) = i
Next
result = YdxDoSetData(id, 1000, data)

VB6.0

Dim result As Long
Dim data(999) As Long
Dim i As Long
For i = 0 To 999
    data(i) = i
Next
result = YdxDoSetData(id, 1000, data(0))

C++/CLI

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

C/C++

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