AioSetAoTransferMode


機能

アナログ出力の変換データ転送方式を設定します

書式

Ret = AioSetAoTransferMode ( Id , AoTransferMode )

引数

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

AoTransferMode [ C, C++: short ] [ Python: ctypes.c_short ]
変換データ転送方式を以下の範囲から指定します。

0

デバイスバッファモード

1

ユーザーバッファモード

同一デバイスにて、高機能アナログ入力と高機能アナログ出力を同時に使用する場合、転送方式を統一する必要があります。

戻り値

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

戻り値

内容

0

正常終了

7

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

10001

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

10002

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

13580

AoTransferModeの値が関数の指定範囲外です

20001

使用しているデバイスではこの関数を使用することができません

20002

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

20003

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

23580

AoTransferModeの値が使用しているデバイスの範囲外です

初期値

すべてのデバイスでAoTransferMode = 0

説明

デバイスバッファモード

アプリケーションの出力データをいったんデバイスバッファ(デバイスが持っているメモリもしくはドライバ内部のメモリ)に格納します。

変換開始後、デバイスバッファの出力データがデバイスに出力されます。

デバイスバッファはFIFOまたはRINGメモリとして使用することができます。(AioSetAoMemoryType

 

デバイスバッファモードは、ジェネレーティング回数を単位として変換データを扱える事や、

変換データを直接電圧値で設定する関数も用意されており、ユーザーバッファモードに比べて簡単に使用できます。

また、ほとんどの使用用途に対応できる機能が用意されているので、通常はデバイスバッファモードの使用をお勧めします。

 

ユーザーバッファモード

変換開始前に出力データが格納されているアプリケーションメモリ登録しておきます。(AioSetAoTransferData

変換開始後、変換データはドライバを経由して直接デバイスへ出力されていきます。

ユーザーバッファはメモリへの上書きあり/なしを選択する事ができます。(AioSetAoMemoryType

バスマスタ転送機能を持つデバイスの場合、ユーザーバッファモードでは自動的にバスマスタ転送を使用します。

バスマスタ転送を使用する場合はユーザーバッファモードを選択してください。

 

アナログ出力機能を持たないデバイスでは使用できません。
デバイスが動作中の場合、この関数は実行できません。

デバイス別仕様

AIO-163202G-PE
AIO-163202UG-PE
AIO-123202G-PE
AIO-123202UG-PE

設定可能なAoTransferModeは0または1です。

AIO-16256256-DEMO

AoTransferMode = 0固定です。

AO-1604VIN-ETH
AO-1604AIN-ETH

AoTransferMode = 0固定です。

使用例

データ転送方式をデバイスバッファに設定します。

C, C++

long Ret;
Ret = AioSetAoTransferMode ( Id , 0 );
 

Python

Ret = ctypes.c_long()
Ret.value = caio.AioSetAoTransferMode ( Id , 0 )