AioSetAoSamplingData


機能

出力データを設定します。

書式

Ret = AioSetAoSamplingData ( Id , AoSamplingTimes , AoData )

引数

Id [ C, C++: short ] [ Python: ctypes.c_short ]
AioInit 関数で取得したデバイスIDを指定します。

AoSamplingTimes [ C, C++: long ] [ Python: ctypes.c_long ]
出力データのジェネレーティング回数を設定します。
デバイスにより設定範囲が異なります。詳細は、AioSetAoEventSamplingTimes()関数トピック内のデバイス別仕様の欄を参照ください。

AoData [ C, C++: long * ] [ Python: ctypes.POINTER(ctypes.c_long) ]
出力データを格納した配列のアドレスを指定します。データはバイナリ値で指定してください。
デバイスにより設定できる値は異なります。

12ビット分解能のデバイス

0~4095

16ビット分解能のデバイス

0~65535

戻り値

Ret [ C, C++: long ] [ Python: ctypes.c_long ]

戻り値

内容

0

正常終了

7

スタンバイモードから復帰したため、AioResetDevice関数を実行してください

10001

無効なIDが指定されました
関数に指定するIDは、AioInitで取得したIDを使用してください。

10002

ドライバを呼び出せません
始めにAioInit関数を実行しください。

13220

AoSamplingTimesの値が関数の指定範囲外です
AoSamplingClockには1以上の値を設定してください。

13221

AoDataのポインタがNULLです
パラメータには配列のアドレスを指定してください。

20001

このデバイスではこの関数は使用できません

20002

デバイスが動作中のため実行できません
この関数を使用するには、アナログ出力動作が停止している必要があります。

20003

他のプロセスがデバイスを使用しているため、実行できません
他のプロセスがデバイスを使用しているときは、マルチプロセス対応関数以外実行できません。

23220

出力データがメモリ容量をオーバーしています

23221

仮想メモリの確保ができません

説明

メモリ形式により使用方法が異なります。

・FIFOメモリの場合
関数を実行するたびに、出力データはメモリの最後に追加されます。
メモリ内のデータをクリアするにはAioResetAoMemory関数を実行してください。
デバイス動作中に実行し、出力データを追加することができます。

・RINGメモリの場合
関数で設定した出力データ数分のメモリが確保されます。
再度関数を実行すると、前回のメモリ内データの内容は失われます。
デバイス動作中には実行できません。

この関数を実行する前に、先にAioSetAoMemoryType関数を実行してください。

この関数と簡易関数とを併用する場合は、「簡易関数と連続関数の混合使用について」の注意事項を参照ください。

使用例

1000ジェネレーティング分の出力データを設定します。

C, C++

long Ret;
long AoData[1000];
short i;
for( i = 0 ; i < 1000 ; i++ ){
AoData[i] = 2048;
}
Ret = AioSetAoSamplingData ( Id , 1000 , &AoData[0] );
 

Python

Ret = ctypes.c_long()
AoDataType = ctypes.c_long * 1000
AoData = AoDataType()
for i in range(1000):
    AoData[i] = 2048
Ret.value = caio.AioSetAoSamplingData ( Id , 1000 , AoData )
 

関連項目

AioGetAoSamplingTimes, AioSetAoSamplingDataEx, AioSetAoEventSampingTimes