NI FGEN Data Transfer Attributes - ni/grpc-device GitHub Wiki
- NIFGEN_ATTRIBUTE_DATA_TRANSFER_BLOCK_SIZE
- NIFGEN_ATTRIBUTE_FILE_TRANSFER_BLOCK_SIZE
- NIFGEN_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_BANDWIDTH
- NIFGEN_ATTRIBUTE_DIRECT_DMA_ENABLED
- NIFGEN_ATTRIBUTE_DIRECT_DMA_WINDOW_ADDRESS
- NIFGEN_ATTRIBUTE_DIRECT_DMA_WINDOW_SIZE
- NIFGEN_ATTRIBUTE_STREAMING_WAVEFORM_NAME
- NIFGEN_ATTRIBUTE_STREAMING_WAVEFORM_HANDLE
- NIFGEN_ATTRIBUTE_STREAMING_SPACE_AVAILABLE_IN_WAVEFORM
- NIFGEN_ATTRIBUTE_STREAMING_WRITE_TIMEOUT
- NIFGEN_ATTRIBUTE_DATA_TRANSFER_MAXIMUM_IN_FLIGHT_READS
- NIFGEN_ATTRIBUTE_PCI_DMA_OPTIMIZATIONS_ENABLED
- NIFGEN_ATTRIBUTE_DATA_TRANSFER_PREFERRED_PACKET_SIZE
Numeric Value | Data type |
Access | Applies to | Coercion | High Level Functions |
---|---|---|---|---|---|
1150241 | ViInt32 | R/W | N/A | None | None |
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.
Numeric Value | Data type |
Access | Applies to | Coercion | High Level Functions |
---|---|---|---|---|---|
1150240 | ViInt32 | R/W | N/A | Yes | None |
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).
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150373 | ViReal64 | R/W | N/A | Yes | None |
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.
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150244 | ViBoolean | R/W | N/A | None | None |
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. |
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150274 | ViInt32 | R/W | N/A | None | None |
Specifies the window address (beginning of window) of the waveform data source. This window address is specified by your Direct DMA-compatible data source.
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150245 | ViInt32 | R/W | N/A | None | None |
Specifies the size of the memory window in bytes, not samples, provided by your Direct DMA-compatible data source.
Numeric Value | Data type |
Access | Applies to | Coercion | High Level Functions |
---|---|---|---|---|---|
1150326 | ViString | R/W | N/A | None | None |
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.
Numeric Value | Data type |
Access | Applies to | Coercion | High Level Functions |
---|---|---|---|---|---|
1150324 | ViInt32 | R/W | N/A | None | None |
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.
Numeric Value | Data type |
Access | Applies to | Coercion | High Level Functions |
---|---|---|---|---|---|
1150325 | ViInt32 | RO | N/A | None | None |
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.
Numeric Value | Data type |
Access | Applies to | Coercion | High Level Functions |
---|---|---|---|---|---|
1150409 | ViReal64 | R/W | N/A | None | None |
Specifies the maximum amount of time allowed to complete a streaming write operation.
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150375 | ViInt32 | R/W | N/A | None | None |
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.
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150362 | ViBoolean | R/W | N/A | None | None |
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. |
Numeric Value | Data Type | Access | Applies to | Coercion | High-Level Functions |
---|---|---|---|---|---|
1150374 | ViInt32 | R/W | N/A | Yes | None |
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.