CntSamplingSetBuffer


機能

サンプリングバッファを設定します。

書式

Ret = CntSamplingSetBuffer ( Id , Buffer , ChNum , ScanNum , IsRing )

引数

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

Buffer [ C, C++ : unsigned int * ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
バッファの先頭アドレスを指定してください。

ChNum [ C, C++ : short ] [ Python: ctypes.c_short ]
バッファのチャネル数を指定してください。

ScanNum [ C, C++ : unsigned int ] [ Python: ctypes.c_uint ]
バッファのスキャン回数を指定してください。
指定可能範囲:
ChNum * ScanNum * 4Byte <= 64MByte

デバイス名称

設定可能範囲

CNT-3204IN-USB

ChNum(チャネル数)× ScanNum(データ個数)×4Byte(データ単位)≦64MByte

IsRing [ C, C++ : short ] [ Python: ctypes.c_short ]
バッファを繰り返して使用するかどうかを設定してください。

定義

意味

CNTS_WRITE_ONCE

0

1回転送

CNTS_WRITE_RING

1

無限回転送

戻り値

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

定義

意味

CNT_ERR_SUCCESS

0

正常終了

CNT_ERR_DLL_INVALID_ID

10001

無効なIDが指定されました

CNT_ERR_DLL_CALL_DRIVER

10002

ドライバを呼び出せません。(ioctlに失敗)

CNT_ERR_DLL_BUFF_ADDRESS

10101

メモリの確保に失敗しました

CNT_ERR_SYS_MEMORY

20000

モードが指定可能範囲外です

CNT_ERR_SYS_USING_OTHER_PROCESS

20003

他のプロセスがデバイスを使用しているため、実行できません

CNT_ERR_SYS_BUFFER

21100

バッファが大きすぎて確保できませんでした

CNT_ERR_SYS_LOCK_MEMORY

21101

メモリがロックできませんでした

CNT_ERR_SYS_SEQUENCE

21102

実行手順エラー

その他のエラー(参照:エラーコード詳細

説明

バッファ設定は、転送開始前に毎回必ず実行してください。システムのメモリ状況によっては、64MByteの領域を設定できない場合があります。

サンプリング中にこの関数を実行した場合、実行手順エラーが発生します。必ず、サンプリングが完了したことを確認してから実行してください。

使用例

チャネル0に対して、10000データ分のバッファを設定します。バッファは無限回転送として使用します。

C, C++

long Ret;

unsigned long Buffer[10000];

Ret = CntSamplingSetBuffer(Id, &Buffer[0], 1, 10000, CNTS_WRITE_RING);
 

Python

Ret = ctypes.c_long()

BufferType = ctypes.c_ulong * 10000

Buffer = BufferType()

Ret.value = ccnt.CntSamplingSetBuffer(Id, Buffer, 1, 10000, ccnt.CNTS_WRITE_RING)
 

関連項目

CntSamplingStart