CntGetSamplingWritePointer


Function

Retrieves the transfer position on sampling buffer.

Format

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

Parameters

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
Specify the device ID retrieved from CntInit.

WritePointer [ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
Specify the address of the variable that stores the returned transfer position.

ScanCount [ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
Specify the address of the variable that stores the sampling count (scan number).

ScanCarry [ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
Specify the address of the variable that stores the carry count.

Return Value

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

Definition

Value

Description

CNT_ERR_SUCCESS

0

Normality completion

CNT_ERR_SYS_RECOVERED_FROM_STANDBY

7

Execute the function CntResetDevice to return from the standby mode.

CNT_ERR_DLL_INVALID_ID

10001

Invalid ID was specified.

CNT_ERR_DLL_CALL_DRIVER

10002

CNT driver can't be called (Failed in the device I/O control).

CNT_ERR_DLL_BUFF_ADDRESS

10101

Invalid data buffer address.

CNT_ERR_SYS_MEMORY

20000

It failed in memory allocation for the object preparation.

CNT_ERR_SYS_NOT_SUPPORTED

20001

This function can't be used by this device.

CNT_ERR_SYS_USING_OTHER_PROCESS

20003

Cannot use because another process is using the device.

The others: (See also: Details of Error Code)

Initial Value

None

Remarks

It is possible to know where data are written on the sampling buffer.
When both transfer count number and transfer position are 0, it indicates the state that no data are transferred, therefore, the actual written position is the previous value of the transfer count number retrieved by this function.

And, the sampling count is a 64-bit counter.
You can calculate 64bit value from ScanCount (Second argument) and ScanCarry (Third argument).

ScanCarry is the higher 32-bit, ScanCount is the lower 32-bit.

After starting count, the sampling number will be put into ScanCount.
ScanCarry will be increased (+1) and ScanCount is preset to zero(0) when ScanCount is overflowed.

WritePointer, ScanCount and ScanCarry are reset when you call CntResetDevice or CntSamplingStart.
These are not reset when you call CntInit.

Example

Retrieves the transfer position on sampling buffer.

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) )