Skip to content

NI FGEN Incremental Waveform Write Functions

Palash Khare edited this page Jun 8, 2021 · 2 revisions

Incremental Waveform Write Functions

niFgen_AllocateWaveform

ViStatus niFgen_AllocateWaveform (ViSession vi, ViConstString channelName, ViInt32 waveformSize, ViInt32* waveformHandle);

Purpose

Specifies the size of a waveform so that it can be allocated in onboard memory before loading the associated data. Data can then be loaded in smaller blocks with the Write Binary 16 Waveform functions.

Note:  The signal generator must not be in the Generating state when you call this function.

You must call the niFgen_ConfigureOutputMode function to set the outputMode parameter to NIFGEN_VAL_OUTPUT_SEQ before calling this function.

Parameters

Input
Name Type Description
vi ViSession Identifies your instrument session. vi is obtained from the niFgen_init, niFgen_InitWithOptions, or niFgen_InitializeWithChannels functions and identifies a particular instrument session.
channelName ViConstString

Specifies the channel name for which you want to allocate the waveform.

Default Value: "0"

waveformSize ViInt32 Specifies, in samples, the size of the waveform to allocate.
Output
Name Type Description
waveformHandle ViInt32* The handle that identifies the new waveform. This handle is used later when referring to this waveform.

Return Value

Name Type Description
status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

niFgen_SetWaveformNextWritePosition

ViStatus niFgen_SetWaveformNextWritePosition (ViSession vi, ViConstString channelName, ViInt32 waveformHandle, ViInt32 relativeto, ViInt32 offset);

Purpose

Sets the position in the waveform at which the next waveform data is written. This function allows you to write to arbitrary locations within the waveform. These settings apply only to the next write to the waveform specified by the waveformHandle parameter. Subsequent writes to that waveform begin where the last write left off, unless this function is called again. The waveformHandle passed in must have been created by a call to the niFgen_AllocateWaveform function or one of the following niFgen CreateWaveform functions:

  • niFgen_CreateWaveformF64
  • niFgen_CreateWaveformI16
  • niFgen_CreateWaveformFromFileI16
  • niFgen_CreateWaveformFromFileF64
  • niFgen_CreateWaveformFromFileHWS

Parameters

Input
Name Type Description
vi ViSession Identifies your instrument session. vi is obtained from the niFgen_init, niFgen_InitWithOptions, or niFgen_InitializeWithChannels functions and identifies a particular instrument session.
channelName ViConstString

Specifies the channel on which to the waveform data should be loaded.

Default Value: "0"

waveformHandle ViInt32 Specifies the handle of the arbitrary waveform previously allocated with the niFgen_AllocateWaveform function.
relativeTo ViInt32

Specifies the reference position in the waveform. This position and offset together determine where to start loading data into the waveform.

Defined Values

NIFGEN_VAL_WAVEFORM_POSITION_START (0) Use the start of the waveform as the reference position.
NIFGEN_VAL_WAVEFORM_POSITION_CURRENT (1) Use the current position within the waveform as the reference position.
Name Type Description
offset ViInt32 Specifies the offset from relativeTo at which to start loading the data into the waveform.

Return Value

Name Type Description
status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

niFgen_WriteWaveform

ViStatus niFgen_WriteWaveform (ViSession vi, ViConstString channelName, ViInt32 waveformHandle, ViInt32 size, ViReal64[] data);

Purpose

Writes floating-point data to the waveform in onboard memory. The waveform handle passed in must have been created by a call to the niFgen_AllocateWaveform function or one of the following niFgen CreateWaveform functions:

  • niFgen_CreateWaveformF64
  • niFgen_CreateWaveformI16
  • niFgen_CreateWaveformFromFileI16
  • niFgen_CreateWaveformFromFileF64
  • niFgen_CreateWaveformFromFileHWS

By default, the subsequent call to the niFgen_WriteWaveform function continues writing data from the position of the last sample written. You can set the write position and offset by calling the niFgen_SetWaveformNextWritePosition function. If streaming is enabled, you can write more data than the allocated waveform size in onboard memory. Refer to the Streaming topic for more information about streaming data.

Parameters

Input
Name Type Description
vi ViSession Identifies your instrument session. vi is obtained from the niFgen_init, niFgen_InitWithOptions, or niFgen_InitializeWithChannels functions and identifies a particular instrument session.
channelName ViConstString

The channel onto which the waveform data should be loaded.

Default Value: "0"

waveformHandle ViInt32 Specifies the handle of the arbitrary waveform previously allocated with the niFgen_AllocateWaveform function.
size ViInt32

Specifies the number of samples to load into the waveform.

Default Value: 0

data ViInt64[] Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in size.

Return Value

Name Type Description
status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

niFgen_WriteWaveformComplexF64

ViStatus niFgen_WriteWaveformComplexF64 (ViSession vi, ViConstString channelName, ViInt32 numberofSamples, niFgen_ComplexF64[] data, ViInt32 waveformHandle);

Purpose

Writes complex data to the waveform in onboard memory on devices with the NIFGEN_ATTRIBUTE_OUTPUT_ENABLED attribute set to VI_TRUE and the NIFGEN_ATTRIBUTE_OSP_DATA_PROCESSING_MODE attribute set to NIFGEN_VAL_OSP_COMPLEX. The waveform handle passed in must have been created by a call to the niFgen_AllocateWaveform function or to one of the following niFgen Create Waveform functions:

  • niFgen_CreateWaveformF64
  • niFgen_CreateWaveformI16
  • niFgen_CreateWaveformFromFileI16
  • niFgen_CreateWaveformFromFileF64
  • niFgen_CreateWaveformFromFileHWS

By default, the subsequent call to the niFgen_WriteWaveformComplexF64 function continues writing data from the position of the last sample written. You can set the write position and offset by calling the niFgen_SetWaveformNextWritePosition function. If streaming is enabled, you can write more data than the allocated waveform size in onboard memory. Refer to the Streaming topic for more information about streaming data.

Parameters

Input
Name Type Description
vi ViSession Identifies your instrument session. vi is obtained from the niFgen_init, niFgen_InitWithOptions, or niFgen_InitializeWithChannels functions and identifies a particular instrument session.
channelName ViConstString

Specifies the channel onto which the waveform data should be loaded.

Default Value: "0"

numberofSamples ViInt32 Specifies the number of samples to load into the waveform.

Default Value: 0
data niFgen_ComplexF64[] Specifies the array of data to load into the waveform. You must normalize the data points in the array to be between –1.00 and +1.00. The array must have at least as many elements as the value in the numberOfSamples parameter.
waveformHandle ViInt32 Specifies the handle of the arbitrary waveform previously allocated with the niFgen_AllocateWaveform function.

Return Value

Name Type Description
status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

niFgen_WriteBinary16Waveform

ViStatus niFgen_WriteBinary16Waveform (ViSession vi, ViConstString channelName, ViInt32 waveformHandle, ViInt32 size, ViInt16[] data);

Purpose

Writes binary data to the waveform in onboard memory. The waveform handle passed must have been created by a call to the niFgen_AllocateWaveform or the niFgen_CreateWaveformI16 function.

By default, the subsequent call to the niFgen_WriteBinary16Waveform function continues writing data from the position of the last sample written. You can set the write position and offset by calling the niFgen_SetWaveformNextWritePosition function. If streaming is enabled, you can write more data than the allocated waveform size in onboard memory. Refer to the Streaming topic for more information about streaming data.

Parameters

Input
Name Type Description
vi ViSession Identifies your instrument session. vi is obtained from the niFgen_init, niFgen_InitWithOptions, or niFgen_InitializeWithChannels functions and identifies a particular instrument session.
channelName ViConstString

Specifies the channel on which to the waveform data should be loaded.

Default Value: "0"

waveformHandle ViInt32 Specifies the handle of the arbitrary waveform previously allocated with the niFgen_AllocateWaveform function.
size ViInt32

Specifies the number of samples to load into the waveform.

Default Value: 0

data ViInt16 [] Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in size. The binary data is left-justified.

Return Value

Name Type Description
status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

niFgen_WriteComplexBinary16Waveform

ViStatus niFgen_WriteComplexBinary16Waveform (ViSession vi, ViConstString channelName, ViInt32 waveformHandle, ViInt32 size, NIComplexI16[] data);

Purpose

Writes binary data to the waveform in onboard memory. The waveform handle passed in must have been created by a call to the niFgen_AllocateWaveform or the niFgen_CreateWaveformI16 function.

By default, the subsequent call to the niFgen_WriteComplexBinary16Waveform function continues writing data from the position of the last sample written. You can set the write position and offset by calling the niFgen_SetWaveformNextWritePosition function. If streaming is enabled, you can write more data than the allocated waveform size in onboard memory. Refer to the Streaming topic for more information about streaming data.

Parameters

Input
Name Type Description
vi ViSession Identifies your instrument session. vi is obtained from the niFgen_init, niFgen_InitWithOptions, or niFgen_InitializeWithChannels functions and identifies a particular instrument session.
channelName ViConstString

Specifies channel on which to the waveform data should be loaded.

Default Value: "0"

waveformHandle ViInt32 Specifies the handle of the arbitrary waveform previously allocated with the niFgen_AllocateWaveform function.
size ViInt32

Specifies the number of samples to load into the waveform.

Default Value: 0

data NIComplexI16 [] Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in size. The binary data is left-justified.

Return Value

Name Type Description
status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:
Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors

Table of Contents

Internal Development

Creating and Setting Up a gRPC Server

Server Security Support

Creating a gRPC Client

gRPC Client Examples

Session Utilities API Reference

Driver Documentation

gRPC API Differences From C API

Sharing Driver Sessions Between Clients

C API Docs
NI-DAQmx
NI-DCPOWER
NI-DIGITAL PATTERN DRIVER
NI-DMM
NI-FGEN
NI-FPGA
NI-RFmx Bluetooth
NI-RFmx NR
NI-RFmx WCDMA
NI-RFmx GSM
NI-RFmx CDMA2k
NI-RFmx Instr
NI-RFmx LTE
NI-RFmx SpecAn
NI-RFmx TD-SCDMA
NI-RFmx WLAN
NI-RFSA
NI-RFSG
NI-SCOPE
NI-SWITCH
NI-TCLK
NI-XNET
Clone this wiki locally