Skip to content

NI FGEN Data Transfer Attributes

Palash Khare edited this page Jun 3, 2021 · 1 revision

Data Transfer Attributes

NIFGEN_ATTRIBUTE_DATA_TRANSFER_BLOCK_SIZE

Specific Attribute

Numeric Value Data
type
Access Applies to Coercion High Level Functions
1150241 ViInt32 R/W N/A None None

Description

Specifies the number of samples at a time to download to onboard memory. This attribute is useful when the total data to be transferred to onboard memory is large.

NIFGEN_ATTRIBUTE_FILE_TRANSFER_BLOCK_SIZE

Specific Attribute

Numeric Value Data
type
Access Applies to Coercion High Level Functions
1150240 ViInt32 R/W N/A Yes None

Description

Specifies the number of samples at a time to read from the file and download to onboard memory. This property is used in conjunction with the niFgen_CreateWaveformI16 and niFgen_WriteWaveform functions.

If the requested value is not evenly divisible by the required increment, this attribute is coerced up to the next 64–sample increment (32–sample increment for complex samples).

NIFGEN_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_BANDWIDTH

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150373 ViReal64 R/W N/A Yes None

Description

Specifies the maximum amount of bus bandwidth to use for data transfers.

The signal generator limits data transfer speeds on the PCI Express bus to the value you specify for this attribute. Set this attribute to optimize bus bandwidth usage for multidevice streaming applications by preventing the signal generator from consuming all the available bandwidth on a PCI Express link when waveforms are being written to the onboard memory of the device.

NIFGEN_ATTRIBUTE_DIRECT_DMA_ENABLED

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150244 ViBoolean R/W N/A None None

Description

Enables the device for Direct DMA writes. When enabled, all Create Waveform and Write Waveform function calls that are given a data address in the Direct DMA window download data residing on the direct DMA device to the instrument onboard memory.

Defined Values

VI_TRUE Enables direct DMA writes.
VI_FALSE Disables direct DMA writes.

NIFGEN_ATTRIBUTE_DIRECT_DMA_WINDOW_ADDRESS

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150274 ViInt32 R/W N/A None None

Description

Specifies the window address (beginning of window) of the waveform data source. This window address is specified by your Direct DMA-compatible data source.

NIFGEN_ATTRIBUTE_DIRECT_DMA_WINDOW_SIZE

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150245 ViInt32 R/W N/A None None

Description

Specifies the size of the memory window in bytes, not samples, provided by your Direct DMA-compatible data source.

NIFGEN_ATTRIBUTE_STREAMING_WAVEFORM_NAME

Specific Attribute

Numeric Value Data
type
Access Applies to Coercion High Level Functions
1150326 ViString R/W N/A None None

Description

Specifies the name of the waveform used to continuously stream data during generation. This attribute defaults to "" (empty string) when no streaming waveform is specified.

Use this attribute in conjunction with the NIFGEN_ATTRIBUTE_STREAMING_SPACE_AVAILABLE_IN_WAVEFORM attribute.

Note:  You cannot change this attribute while the device is generating a waveform. If you want to change the device configuration, call the niFgen_AbortGeneration function or wait for the generation to complete.

NIFGEN_ATTRIBUTE_STREAMING_WAVEFORM_HANDLE

Specific Attribute

Numeric Value Data
type
Access Applies to Coercion High Level Functions
1150324 ViInt32 R/W N/A None None

Description

Specifies the waveform handle of the waveform used to continuously stream data during generation. This attribute defaults to -1 when no streaming waveform is specified.

Used in conjunction with the NIFGEN_ATTRIBUTE_STREAMING_SPACE_AVAILABLE_IN_WAVEFORM attribute.

Note:  You cannot change this attribute while the device is generating a waveform. If you want to change the device configuration, call the niFgen_AbortGeneration function or wait for the generation to complete.

NIFGEN_ATTRIBUTE_STREAMING_SPACE_AVAILABLE_IN_WAVEFORM

Specific Attribute

Numeric Value Data
type
Access Applies to Coercion High Level Functions
1150325 ViInt32 RO N/A None None

Description

Indicates the space available, in samples, in the streaming waveform for writing new data. For optimal performance, write new data to the waveform in a fixed size that is an integer divisor of the total size of the streaming waveform so that a write does not have to wrap around to the beginning of the waveform buffer.

Use this attribute in conjunction with the NIFGEN_ATTRIBUTE_STREAMING_WAVEFORM_HANDLE or NIFGEN_ATTRIBUTE_STREAMING_WAVEFORM_NAME attributes.

NIFGEN_ATTRIBUTE_STREAMING_WRITE_TIMEOUT

Specific Attribute

Numeric Value Data
type
Access Applies to Coercion High Level Functions
1150409 ViReal64 R/W N/A None None

Description

Specifies the maximum amount of time allowed to complete a streaming write operation.

NIFGEN_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_IN_FLIGHT_READS

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150375 ViInt32 R/W N/A None None

Description

Specifies the maximum number of concurrent PCI Express read requests the signal generator can issue.

When transferring data from computer memory to device onboard memory across the PCI Express bus, the signal generator can issue multiple memory reads at the same time. In general, the larger the number of read requests, the more efficiently the device uses the bus. This efficiency is caused by the multiple read requests that keep data flowing, even in a PCI Express topology that has high latency due to PCI Express switches in the data path. Most NI devices can issue a large number of read requests, typically 8 or 16. By default, this attribute is set to the highest value the signal generator supports.

If other devices in your system cannot tolerate long data latencies, it may be helpful to decrease the number of in-flight read requests the NI signal generator issues. This change helps to reduce the amount of data the signal generator reads at one time.

Note:  You cannot change this attribute while the device is generating a waveform. If you want to change the device configuration, call the niFgen_AbortGeneration function or wait for the generation to complete.

NIFGEN_ATTRIBUTE_PCI_DMA_OPTIMIZATIONS_ENABLED

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150362 ViBoolean R/W N/A None None

Description

Controls whether NI-FGEN allows performance optimizations for DMA transfers. This attribute is valid only for PCI and PXI SMC-based devices. This attribute is enabled (VI_TRUE) by default, and NI recommends leaving it enabled.

Note:  You cannot change this attribute while the device is generating a waveform. If you want to change the device configuration, call the niFgen_AbortGeneration function or wait for the generation to complete.

Defined Values

VI_TRUE DMA optimizations are enabled.
VI_FALSE DMA optimizations are disabled.

NIFGEN_ATTRIBUTE_DATA_TRANSFER_PREFERRED_PACKET_SIZE

Specific Attribute

Numeric Value Data Type Access Applies to Coercion High-Level Functions
1150374 ViInt32 R/W N/A Yes None

Description

Specifies the preferred size of the data field in a PCI Express read request packet. In general, the larger the packet size, the more efficiently the device uses the bus. By default, NI signal generators use the largest packet size allowed by the system. However, because of different system implementations, some systems may perform better with smaller packet sizes.

Recommended values for this attribute are powers of two between 64 and 512.

Note:  In some cases, the signal generator generates packets smaller than the preferred size you set with this attribute.

You cannot change this attribute while the device is generating a waveform. If you want to change the device configuration, call the niFgen_AbortGeneration function or wait for the generation to complete.

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