ユーザーバッファモードの転送サイズを設定します。
Ret = AioSetAiTransferSize ( Id, AutoMode, TransferSize )
Id [
C, C++: short ][ Python: ctypes.c_short ]
AioInit 関数で取得したデバイスIDを指定します。
AutoMode
[ C, C++ : short ][ Python : ctypes.c_short ]
転送サイズの設定方法を以下の範囲から指定します
マクロ |
値 |
|
AI_TRANSFERSIZE_MANUAL |
0 |
転送サイズを手動設定 |
AI_TRANSFERSIZE_AUTO |
1 |
転送サイズを自動設定 |
TransferSize
[ C, C++ : long ][Python : ctypes.c_long]
転送サイズの設定方法が手動設定の場合の転送サイズを指定します。
転送サイズはパケット数で指定します。
転送サイズの設定方法が自動設定の場合は0を指定してください。
Ret [ C, C++: long ][ Python: ctypes.c_long ]
戻り値 |
内容 |
0 |
正常終了 |
7 |
スタンバイモードから復帰したため、AioResetDevice関数を実行してください |
10001 |
無効なIDが指定されました |
10002 |
ドライバを呼び出せません |
20001 |
使用しているデバイスではこの関数を使用することができません |
20002 |
デバイスが動作中のため実行できません |
20003 |
他のプロセスがデバイスを使用しているため、実行できません |
22520 |
ドライバ内部エラーが発生しました。 |
22521 |
AutoModeの値が使用しているデバイスの範囲外です。 |
22522 |
TransferSizeの値が使用しているデバイスの範囲外です。 |
すべてのデバイスで以下となります
AutoMode = 1
TransferSize = 転送サイズを自動で設定のためデバイスによって異なります。
AI-1664UG-PE |
1 |
ユーザーバッファモードで1回に転送する転送サイズを設定します。
転送サイズを自動設定の場合、クロックの種類に応じてデバイスドライバが自動的に設定する転送サイズが異なります。
内部クロックの場合 |
サンプリングクロック周期に応じた転送サイズが設定されます。 |
||||||
外部クロックの場合 |
転送サイズはデバイス毎に固定です。
|
転送サイズを手動設定の場合、任意の転送サイズをパケット数で設定できます。
転送サイズを大きくするとCPU使用率が減少し動作が安定しますが、データの転送間隔が長くなります。
転送サイズを小さくするとデータの転送間隔を短くできますが、CPU使用率が上昇し動作が不安定になる場合があります。
転送サイズによってはクロック入力時に転送データ数が進まないことがありますが、サンプリングは行われております。
なお、転送完了時は、残りのデータも転送されます。
サンプリング動作中は設定不可
自動設定の場合、転送サイズはAioStartAi関数を実行したタイミングで固定されます。
サンプリング動作中にサンプリングクロック周期を変更しても転送サイズは変更されません。
設定された転送サイズはAioGetAiTransferSize関数で取得できます。
転送サイズを自動設定に設定します。
C, C++ |
long Ret; |
Python |
Ret = ctypes.c_long() |