Show/Hide Toolbars

You can use rapid block mode with or without aggregation. With aggregation, you need to set up two buffers for each channel, to receive the minimum and maximum values.

Without aggregation

1.Open the oscilloscope using ps6000aOpenUnit().
2.Select channel ranges and AC/DC coupling using ps6000aSetChannelOn() and ps6000aSetChannelOff().
3.Set the number of memory segments equal to or greater than the number of captures required using ps6000aMemorySegments(). Use ps6000aSetNoOfCaptures() before each run to specify the number of waveforms to capture.
4.Using ps6000aGetTimebase(), select timebases until the required nanoseconds per sample is located.
5.Use the trigger setup functions ps6000aSetTriggerChannelConditions(), ps6000aSetTriggerChannelDirections() and ps6000aSetTriggerChannelProperties() to set up the trigger if required.
6.Start the oscilloscope running using ps6000aRunBlock().
7.Wait until the oscilloscope is ready using the ps6000aBlockReady() callback.
8.Use ps6000aSetDataBuffer() to tell the driver where your memory buffers are. Call the function once for each channel/segment combination for which you require data. For greater efficiency with multiple captures, you could do this outside the loop after step 5.
9.Transfer the blocks of data from the oscilloscope using ps6000aGetValuesBulk().
10.Retrieve the time offset for each data segment using ps6000aGetValuesTriggerTimeOffsetBulk().
11.Display the data.
12.Repeat steps 6 to 11 if necessary.
13.Stop the oscilloscope using ps6000aStop().
14.Close the device using ps6000aCloseUnit().

 

With aggregation

To use rapid block mode with aggregation, follow steps 1 to 7 above and then proceed as follows:

8a.Call ps6000aSetDataBuffers() to set up one pair of buffers for every waveform segment required.
9a.Call ps6000aGetValuesBulk() for each pair of buffers.
10a.Retrieve the time offset for each data segment using ps6000aGetValuesTriggerTimeOffsetBulk().

Continue from step 11 above.