LibTiePie  0.5
Library for interfacing TiePie engineering instruments
 All Files Functions Typedefs Macros Modules Pages
Arbitrary waveform buffer

Description

Functions for controlling the arbitrary waveform buffer of a generator.

A generator has a buffer in which arbitrary waveform patterns can be loaded, after which the loaded pattern can be generated, when the signal type is set to ST_ARBITRARY. Waveform patterns must have a length in samples between a minimum and maximum value. Use GenGetDataLengthMin() and GenGetDataLengthMax() to get the buffer length limits in samples.

When the frequency mode is set to "signal frequency", the loaded pattern is treated as one period of the signal to generate. When the frequency mode is set to "sample frequency", the samples of the loaded pattern are generated at the set sample frequency.

The samples in the waveform pattern buffer represent the voltage values of the signal to generate. These sample values are unitless floating point values. Positive values represent the positive part of the signal. Negative values represent the negative part of the signal. When loading the buffer, the values in the buffer are normalized:

Example pattern:

Sample numberBuffer valueGenerated voltage
Amplitude = 7 V
Offset = 0 V
Generated voltage
Amplitude = 4V
Offset = -1 V
00.0 0.0 V -1.0 V
10.5 3.5 V 1.0 V
21.0 7.0 V 3.0 V
30.5 3.5 V 1.0 V
40.0 0.0 V -1.0 V
5-0.5 -3.5 V -3.0 V
6-1.0 -7.0 V -5.0 V
7-0.5 -3.5 V -3.0 V

Functions

uint64_t GenGetDataLengthMin (TpDeviceHandle_t hDevice)
 Get the minimum length of the waveform buffer of a specified generator. More...
 
uint64_t GenGetDataLengthMax (TpDeviceHandle_t hDevice)
 Get the maximum length of the waveform buffer of a specified generator. More...
 
uint64_t GenGetDataLength (TpDeviceHandle_t hDevice)
 Get the length of the currently loaded waveform pattern of a specified generator. More...
 
void GenSetData (TpDeviceHandle_t hDevice, const float *pBuffer, uint64_t qwSampleCount)
 Load a waveform pattern into the waveform buffer of a specified generator. More...
 

Function Documentation

uint64_t GenGetDataLengthMin ( TpDeviceHandle_t  hDevice)

Get the minimum length of the waveform buffer of a specified generator.

Parameters
[in]hDeviceA device handle identifying the generator.
Returns
The minimum waveform buffer length in samples.
Status values
NOT_SUPPORTED The generator does not support getting the data length for the current signal type.
INVALID_HANDLE The handle is not a valid generator handle.
DEVICE_GONE The device indicated by the device handle is no longer available.
LIBRARY_NOT_INITIALIZEDThe library is not initialized, see LibInit().
SUCCESS The function executed successfully.
See also
GenGetDataLengthMax
GenGetDataLength
Since
0.4.2
uint64_t GenGetDataLengthMax ( TpDeviceHandle_t  hDevice)

Get the maximum length of the waveform buffer of a specified generator.

Parameters
[in]hDeviceA device handle identifying the generator.
Returns
The maximum waveform buffer length in samples.
Status values
NOT_SUPPORTED The generator does not support getting the data length for the current signal type.
INVALID_HANDLE The handle is not a valid generator handle.
DEVICE_GONE The device indicated by the device handle is no longer available.
LIBRARY_NOT_INITIALIZEDThe library is not initialized, see LibInit().
SUCCESS The function executed successfully.
See also
GenGetDataLengthMin
GenGetDataLength
Since
0.4.0
uint64_t GenGetDataLength ( TpDeviceHandle_t  hDevice)

Get the length of the currently loaded waveform pattern of a specified generator.

Parameters
[in]hDeviceA device handle identifying the generator.
Returns
The currently set waveform pattern length in samples.
Status values
NOT_SUPPORTED The generator does not support getting the data length for the current signal type.
INVALID_HANDLE The handle is not a valid generator handle.
DEVICE_GONE The device indicated by the device handle is no longer available.
LIBRARY_NOT_INITIALIZEDThe library is not initialized, see LibInit().
SUCCESS The function executed successfully.
See also
GenGetDataLengthMin
GenGetDataLengthMax
Since
0.4.0
void GenSetData ( TpDeviceHandle_t  hDevice,
const float *  pBuffer,
uint64_t  qwSampleCount 
)

Load a waveform pattern into the waveform buffer of a specified generator.

Parameters
[in]hDeviceA device handle identifying the generator.
[in]pBufferA pointer to a buffer with the waveform data.
[in]qwSampleCountThe number of samples in the pattern.
Status values
VALUE_MODIFIED The requested data length is not available. The data is resampled to the closest valid length.
INVALID_VALUE The buffer pointer is NULL or the requested waveform pattern length is 0.
NOT_SUPPORTED The generator does not support uploading pattern data for the current signal type.
UNSUCCESSFUL An error occurred during execution of the last called function.
NOT_CONTROLLABLE The generator is currently not controllable, see GenIsControllable.
INVALID_HANDLE The handle is not a valid generator handle.
DEVICE_GONE The device indicated by the device handle is no longer available.
LIBRARY_NOT_INITIALIZEDThe library is not initialized, see LibInit().
SUCCESS The function executed successfully.
Remarks
Signal type must be set to arbitrary mode to load a waveform pattern into the waveform buffer.
To clear and reset the waveform buffer, call GenSetData with pBuffer = NULL and qwSampleCount = 0.
When the generator is active, uploading new a waveform pattern will shortly interrupt the output signal.
Changing the data may change the burst segment count if generator mode is GM_BURST_SEGMENT_COUNT or GM_BURST_SEGMENT_COUNT_OUTPUT.
See also
GenGetDataLengthMin
GenGetDataLengthMax
GenGetDataLength
Since
0.4.0