User manual
Programmer’s Guide Page 31 of 64
{
AcqrsD1_forceTrig(instrID);
if (AcqrsD1_waitForEndOfAcquisition(instrID, timeOut) ==
ACQIRIS_ERROR_ACQ_TIMEOUT)
{
AcqrsD1_stopAcquisition(instrID);
SCREAM, because a major error occurred
}
}
Note that no timeout should ever occur when waiting for a 'forceTrig' to terminate, provided that the timeOut value
was made large enough. If a timeout does occur, this would indicate a failure in the digitizer or the entire system.
For users generating triggers under software control it may be desirable to do the data readout in a way that just gives
the acquired data points and ignores the correction of the data gotten from the horPos measurement of the time from
the trigger to the next data sample. This can be done using the flags parameter of the AqReadParameters structure.
3.10.5. Simultaneous multibuffer Acquisition and Readout (SAR)
The U1071A-FAMILY and the 10-bit-FAMILY allow the internal memory’s dual-port structure to be exploited.
Data acquisition and read out can be done simultaneously. This requires the use of a slightly different programming
model.
Configure:
In addition to the usual configuration parameters, the application must enable the SAR mode by calling
AcqrsD1_configMemoryEx with 'nbrBanks = 2' (or more, 3 is a good choice).
Start:
AcqrsD1_acquire must be called to start the acquisitions.
If valid triggers are provided, from the hardware or software (AcqrsD1_forceTrigEx with 'forceTrigType = 1'), then
the desired segments will be filled for the current and all the following available banks.
This continues until all 'banks' are full. If a bank is freed (see below) the process can continue by reusing that bank.
Wait for data:
To know if data is available for read out, the application must poll, using AcqrsD1_acqDone, or wait for end of an
acquisition, using AcqrsD1_waitForEndOfAcquisition as usual. If
If either of the above operations successfully returns, it means that at least one bank has been acquired and is ready to
be read.
Read:
When data is available, it can be read using the usual AcqrsD1_readData functions. The data remain available for
multiple reads.
Free the bank and continue:
After all the desired data has been read the bank can be marked for reuse by calling AcqrsD1_freeBank.Further calls
to AcqrsD1_acquire are not required. It is important to free banks as soon as possible in order to ensure that the
subsequent triggers are accepted.
Configuration changes:
If the configuration settings are changed, they will only be loaded at the next acquisition restart. Thus,
AcqrsD1_stopAcquisition must be called and all desired data should be read out. Then the new conditions can
become effective with the Start of a new acquisition sequence.