I am implementing the 6824E on a C# application in which I need to read and store values from 7 channels taken during a 28 second time interval.
I've been looking at the ps6000aExamples, more specifically, the BlockModeExampleCallback that (if I understood correctly) signals the picoscope to collect numSamples amount of samples with idealTimeinterval time interval between each, waits the data to be captured by the picoscope and then reads that data from the picoscope to the pc and saves it on a .csv file. Now, my questions are;
-What is the sample limit for this blockmode capturing? I mean, if the picoscope is storing the values it captures before "releasing" them or sending them to the pc after the block capture is complete, there should be a maximum number of values/samples it can hold.
-Is this maximum number of samples individual for each channel or altogether?
If you are taking in samples for 28 seconds I will suggest using streaming mode.
For this period the number of samples per second you can capture is higher than using the scope memory.
Thank you for the responses. Data streaming seems to be the logical move but i am basing myself on the c# examples at github and it doesn't contemplate data streaming, and there isn't programmer's guide for 6000E series so i am going to try to do it with blocks. The issue will be the fact that i won't even able to capture all the data due to likely overhead between capturing blocks.
I tried to capture 4GS using 8 bit resolution on the 6824E but since the maximum size of an array would be 2GB in C# i set gcAllowVeryLargeObjects to true to enable a larger array that could store all the data. PS6000a.SetDataBuffers returned 516 error status, does anyone know why?
It is a 28 second long test procedure to validate a PCB that was implemented few months ago, but due to high rejection rate on it, the client is trying to look for possible causes and they want to monitorize high frequency transitions at power MOSFETs during the entire test. Their desired sampling rate would be 100 million samples per second on each channel for 6 channels which would be a total of 600 million samples per second for 28 seconds to a whooping total of 16.8*10^9 samples which easily exceeds the 4GS (for 8 bit samples) memory on the scope. Going for data streaming is an idea even though the rates would be lower, i am currently waiting for response on an email i sent about that. Meanwhile i also thought about collecting various blocks but i think there would be too much overhead between capturing a block, retrieving a block and being able to capture a new one, loosing a lot of data in between. Lastly, i thought about capturing 4GS during the 28 second (not 4GS/s as i think you misunderstood, i mean 4GS/28s ~ 143MS/s) on a lower rate than desired, that would be ~23.8 mega samples per channel (considering 8 bit samples), however i would also need an array with 4*10^9 entries which exceeds the maximum allowed, so as i said in last post i set gcAllowVeryLargeObjects to true in the c# project config file, but doing so returns me a 516 error status message on PS6000a.SetDataBuffers which i cannot trace the cause since there is no documentation about this yet.