DioDmGetCount


Function

Acquires the transfer count number.

Format

Ret = DioDmGetCount ( Id , Dir , &Count , &Carry )

Parameters

Id [ C, C++: short] [Python: ctypes.c_short]
Specifies the device ID retrieved from DioInit.

Dir [ C, C++: unsigned long] [Python: ctypes.c_ulong]
Specify the transfer direction.

Definition

Value

[Hex]

Description

DIODM_DIR_IN

0x01

Input

DIODM_DIR_OUT

0x02

Output

Count [ C, C++: unsigned long *] [Python: ctypes.POINTER(ctypes.c_ulong)]
Specify the address of the variable in which the count number is stored.

Carry [ C, C++: unsigned long *] [Python: ctypes.POINTER(ctypes.c_ulong)]
Specify the address of the variable in which the carry count is stored.

Return Value

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

Definition

Value

[Dec]

Description

DIO_ERR_SUCCESS

0

Normal complete

DIO_ERR_DLL_INVALID_ID

10001

Invalid ID is specified.

DIO_ERR_DLL_CALL_DRIVER

10002

Driver cannot be called (failed in ioctl).

DIO_ERR_DLL_BUFF_ADDRESS

10100

Invalid data buffer address.

DIO_ERR_SYS_DIRECTION

50000

I/O direction is outside of the setting range.

The other errors: (See also: Error code details)

Initial Value

None

Remarks

64-bit count number is returned by adding Count to Carry.

When using the DIO-32DM3-PE, the data is transferred to the PC side every 2-2048 samplings for optimization.
Therefore, there is such a possibility that the count doesn't work when the clocks input, but the sampling is performed.
When the transfer is completed, the rest of the data will also be transferred.

Example

C, C++

Ret = DioDmGetCount( Id , DIODM_DIR_IN , &Count , &Carry );
 

Python

Ret = cdio.DioDmGetCount( Id , cdio.DIODM_DIR_IN , ctypes.byref(Count) , ctypes.byref(Carry) )
 

See Also

Usage of buffer at input transfer