I am trying to write an application for unmonitored data logging using my PS3206D MSO. The signal of interest has bursts of pulses with a pulse repetition interval of a few milliseconds. The bursts themselves are separated by arbitrarily long intervals. The app will arm the trigger and save the amplitude and some form of timestamp for each pulse when the trigger fires. I'm interested in dropping as few pulses as possible so I am looking for the API which will re-arm the trigger and transfer the samples to app buffers as quickly as possible during each burst.

I have been experimenting with the C_Console app provided with the latest SDK. I've found that after collecting a block or stream of samples after the trigger fires the only way to re-arm the trigger is to call ps3000aRunBlock / ps3000aRunStreaming again depending on the transfer mode. It looks like the block transfer mode provides the lowest trigger re-arm latency and I am able to capture waveforms at ~10ms intervals. Similar loop using the streaming mode results in a latency of ~150ms between trigger re-armings. And the rapid block transfer mode does no better possibly because it is copying multiple segments.

What is the recommended transfer mode and API to use for my application ? Is it triggered block mode using multiple segments ?