CntGetSamplingWritePointer


機能

サンプリングバッファ上の転送位置を取得します。

書式

Ret = CntGetSamplingWritePointer ( Id , WritePointer , ScanCount , ScanCarry )

引数

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

WritePointer [ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
転送位置を返す変数のアドレスを指定してください。

ScanCount [ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
サンプリング回数(スキャン回数)を格納する変数のアドレスを指定してください。

ScanCarry [ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
キャリー回数を格納する変数のアドレスを指定してください。

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

定義

意味

CNT_ERR_SUCCESS

0

正常終了

CNT_ERR_SYS_RECOVERED_FROM_STANDBY

7

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

CNT_ERR_DLL_INVALID_ID

10001

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

CNT_ERR_DLL_CALL_DRIVER

10002

 ドライバーを呼び出せません。(デバイスI/Oコントロールに失敗)

CNT_ERR_DLL_BUFF_ADDRESS

10101

データバッファアドレスが不正です

CNT_ERR_SYS_MEMORY

20000

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

CNT_ERR_SYS_NOT_SUPPORTED

20001

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

CNT_ERR_SYS_USING_OTHER_PROCESS

20003

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

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

初期値

なし

説明

サンプリングバッファ上で、どこまでデータが書き込まれているかを知ることができます。
転送カウント数が0で転送位置が0の時は、データが転送されていない状態を表すため、実際に書き込まれている位置はこの関数で取得できる転送カウント数のひとつ前のデータとなります。

なお、サンプリング回数は、64bitのカウンタです。
第3引数 ScanCountと、第4引数ScanCarryとを合わせて64bitのサンプリング回数となります。

ScanCountが下位32bit、ScanCarryが上位32bitとなります。

ScanCountにはカウント スタート後のサンプリング回数が入ります。
ScanCountの値があふれたとき、ScanCarryの値が1増え、ScanCountはゼロ(0)にプリセットされます。

CntResetDeviceまたはCntSamplingStartを実行すると、WritePointer、ScanCount、ScanCarryがリセットされます。
CntInit実行時はリセットされません。

 

使用例

サンプリングバッファ上の転送位置を取得します。

VB.NET

Dim Ret As Integer
Dim WritePointer As Integer
Dim ScanCount As Integer
Dim ScanCarry As Integer
Ret = CntGetSamplingWritePointer ( Id , WritePointer , ScanCount , ScanCarry )
 

C, C++

long Ret;
unsigned long WritePointer;
unsigned long ScanCount;
unsigned long ScanCarry;
Ret = CntGetSamplingWritePointer ( Id , &WritePointer , &ScanCount , &ScanCarry );
 

C#

int Ret;
uint WritePointer;
uint ScanCount;
uint ScanCarry;
Ret = cnt.GetSamplingWritePointer ( Id , out WritePointer , out ScanCount , out ScanCarry );
 

Python

Ret = ctypes.c_long()
WritePointer = ctypes.c_ulong()
ScanCount = ctypes.c_ulong()
ScanCarry = ctypes.c_ulong()
Ret.value = ccnt.CntGetSamplingWritePointer ( Id , ctypes.byref(WritePointer) , ctypes.byref(ScanCount) , ctypes.byref(ScanCarry) )