MIES
MIES copied to clipboard
Fifopos handling for ITC is ambiguous for Acq finish and abort
For ITC only:
Currently the fifopos is tracked in TFH_Fifoloop when the thread ended the fifpos retrieval function returns NaN for the fifopos. The Thread can end due to 3 cases:
- Runtime Error in thread
- Data Acquisition finished regularly
- Data Acquisition was stopped by user (something is sent via thread-queue to TFH_Fifoloop)
The main thread handles all three cases the same way.
Thus, for the case where the Data Acquisition is stopped by the user the last data block transferred from ITC to ScaledDataWave is the one, where a finite fifopos was received from the thread while the thread-id was still valid. Remaining valid acquisition data until the stop is triggered is not copied because the thread-id is already invalid.
Another issue is that the remaining points of the sweep are NaN and its treated as regular sweep acquisition.
Possible solution:
- Keep the FIFOLoop Thread(s) alive while ITC devices are locked and do all start stop handling there. This allows to retrieve the last valid fifopos when the acquisition is stopped by a user.
- Save the information when a sweep acquisition was aborted by a user and until to which point was acquired.