After two days of debugging, I finally spotted the problem:
In _OpenADCInterface.py you find the following code:
while ((status & STATUS_ARM_MASK) == STATUS_ARM_MASK) | ((status & STATUS_FIFO_MASK) == 0):
status = self.getStatus()
# Wait for a moment before re-running the loop
diff = datetime.datetime.now() - starttime
The sleep(0.05) code slows down capturing.
Because the GUI version is slower as the command line version, the while loop will never be executed! Therefore the sleep doesn’t matter here.
But on the faster command line version, the while loop will be executed once! Therefore sleep code is executed and waits for 0.05 seconds, which is twice as long as the GUI version needs.
By setting the sleep to a lower value (e.g. 0.01) acquisition on the command line version gets far faster then on the GUI version!
Nice find! I was also trying to figure this out but you got it before me. Suggestion: instead of reducing the sleep time in the while loop, add a time.sleep before the getStatus call outside of the while loop, to prevent entering the while loop at all. On my system that boosts the iterations/second from ~22 to ~24.