EasyManua.ls Logo

Acqiris SA240P - Page 35

Default Icon
89 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
3.2 Simultaneous acquisition and readout (CST option)
Acqiris SA240P User's Manual 35
Data rate and overflow
The maximum data rate that can be sustained without overflow is limited by the PCIe sustained
throughput on the target system, i.e. it depends on trigger rate and host computer and operating
system settings.
With optimized settings and system, the SA240P can reach up to 6 GB/s in output. To have a list of
recommended system and settings, please contact technical support support@acqiris.com.
When an overflow occurs the writing to the stream buffers automatically stops. The already
acquired data is still valid and can be read-out.
To optimize the application data throughput it is recommended to use:
NbOfElementsToFetch > 1M
especially for application with high trigger rate.
When less than NbOfElementsToFetch are available, the function StreamFetchDataInt32
(…)returns the number of availableElements (on-board) and no DMA read is performed.
Data buffer allocation
For data buffer
ViInt64 sampleStreamGrain = 0;
checkApiCall(AqMD3_GetAttributeViInt64(session, sampleStreamName, AQMD3_ATTR_STREAM_GRANULARITY_IN_
BYTES, &sampleStreamGrain));
ViInt32 const alignmentOverhead = (ViInt32)sampleStreamGrain / sizeof(ViInt32) - 1;
vector<ViInt32> sampleElements(nbrSampleElementsToFetch + alignmentOverhead +
nbrSampleElementsToFetch/2); // data alignment & data unwrapping overheads (only in single channel
mode).
// or
vector<ViInt32> sampleElements(nbrSampleElementsToFetch + alignmentOverhead); // data alignment
overhead (only in dual channel mode).
For marker buffer
ViInt64 markerStreamGrain = 0;
checkApiCall(AqMD3_GetAttributeViInt64(session, markerStreamName, AQMD3_ATTR_STREAM_GRANULARITY_IN_
BYTES, &markerStreamGrain));
ViInt32 const alignmentOverhead = (ViInt32)markerStreamGrain / sizeof(ViInt32) - 1;
vector<ViInt32> markerElements(nbrMarkerElementsToFetch + alignmentOverhead);
Data unwrapping overhead is required in single channel mode (when Channel2 is disabled).
Code example
Program examples with streaming can be found in here:
For IVI-C C:\Program Files\IVI Foundation\IVI\Drivers\AqMD3\Examples\IVI-C

Table of Contents