possible deadlock in TAP0 optimization for datamerging
Running a scan in datamerging triggers the automatic TAP0 optimization as implemented in HWInterface/RD53BInterface.cc
l. 245 - 286.
A problem arising from this implementation is that in l. 271 for every setting a while-loop is used.
while(fwInterface->ReadReg("user.stat_regs.aurora_frame_cntr") < nFrames2Read)
std::this_thread::sleep_for(std::chrono::microseconds(RD53Shared::DEEPSLEEP));
This while-loop checks, if the FC7 has received enough aurora frames. If not, it will send it to sleep. However, if the transmission is not working (or we find a setting with bad transmission what we are actually looking for), the FC7 does not receive, the counter does never reach the frames it needs and we encounter a deadlock. I propose to use a fixed time interval e.g. 200 microseconds (should give approx. 100 frames back if working) instead of this dangerous loop.