AioSetAoSamplingData


Function

Sets the output data.

Format

Ret = AioSetAoSamplingData ( Id , AoSamplingTimes , AoData )

Parameters

Id [ C, C++ : short ] [ Python : ctypes.c_short ]
Specifies the Device ID retrieved from AioInit function.

AoSamplingTimes [ C, C++ : long ] [ Python : ctypes.c_long ]
Sets the number of generating for the output data.

AoData [ C, C++ : long * ] [ Python : ctypes.POINTER(ctypes.c_long) ]
Specifies the address of array which stores the output data. Please specify the data in binary value.
The available value differs by the device.

Resolution of device is 12 bit

0 to 4095

Resolution of device is 16 bit

0 to 65535

Return value

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

Return values

Content

0

Normality completion

7

Execute AioResetDevice function because the device has recovered from standby mode

10001

Invalid Id was specified
Use the Id retrieved from AioInit to specify the Id in this function.

10002

AIO driver can't be called
At first, perform AioInit function.

13220

The value of AoSamplingTimes is outside the designated range of the function
AoSamplingTimes should be set to a value greater than or equal to 1.

13221

Pointer to AoData is NULL
Specify the address of variable to parameter.

20001

This function can't be used by this device

20002

Can not use while by another device works
To use this function, analog output operation must be stopped.

20003

Can not use because another process is using the device
When another process is using the device, all functions except for those that support multi-process can not be performed.

23220

Output data exceed memory capacity

23221

Failed in the allocation of the memory

Remarks

The usage differs by the memory type.

In FIFO memory
The output data is added at the end of the memory after this function is executed every time.
Clear the data from the memory by using AioResetAoMemory function.
The output data can be added even if the device is in operation.

In RING memory
It ensures the output data which is set by function in the memory.
If this function is executed once more, the last memory data are lost. 
It can't be used if the device is in operation.

Before this function is executed, please perform AioSetAoMemoryType function.

When you use this function and "simple functions", please refer "How to use simple functions and continuous functions at the same time" topics.

Example

Sets the 1000 generating output data.

C, C++

long Ret;
long AoData[1000];
short i;
for( i = 0 ; i < 1000 ; i++ ){
AoData[i] = 2048;
}
Ret = AioSetAoSamplingData ( Id , 1000 , &AoData[0] );
 

Python

Ret = ctypes.c_long()
AoDataType = ctypes.c_long * 1000
AoData = AoDataType()
for i in range(1000):
    AoData[i] = 2048
Ret.value = caio.AioSetAoSamplingData ( Id , 1000 , AoData )
 

See also

AioGetAoSamplingTimes, AioSetAoSamplingDataEx