This is from Ian at Dynon in regards to their currently undocumented functions:
(I asked Ian about a function to check if it's okay to go and get the DSO data) The latest DLL has a function in it, bool PollDSOReady(), that does just that. The documentation isn't done yet, but that's the major change to the DLL, so you can probably use it. The latest DLL is on the website. The other big changes are that it no longer requires the C style unique identifiers, and the structure of CaptureDSOData changed so that the LA trigger value is seperate. int CaptureDSOData(unsigned int total_blocks, unsigned int pre_trigger_blocks, unsigned int trigger_channel, double trigger_value, unsigned int LA_trigger, unsigned int auto_roll, long OverrideOtherClocks)
int RetrieveFFTData(double *data_buffer, int channel, int db, int direction) PARAMETERS: // ## data_buffer - a pointer to an array where the FFT data will be stored // ## channel - integer value where value 2 is Channel 2 and anything else is Channel 1 // ## db - integer value of 1 will cause the function to return FFT data in dB, anything else will cause the function to return raw data (volts) // ## direction - an integer value to specify the direction sign I think a direction of 0 is time->FFT and 1 is FFT->time, but you may need to play with that. You call this function after you have taken a capture.
01-MARCH-2006 9:30AM This demo doesn't do much. Click the "SetupAWG" button to load a buffer with nearly 1 kilobyte of data. This data is a sine wave created like this: for(x=0;x<=BufferSize-1;x++) AnalogVoltage[x]=(0.5)*sin(((double)x/(double)BufferSize)*(2*3.1415)); The sin function's argument is an angle in radians. 2*PI radians in a circle. All we're doing is stretching the sine wave across 1000 data points, cutting the amplitude in half (-0.5V to +0.5V or 1V peak to peak) and then populating the array. Next you click "AWGStart" and it will play back the data in the buffer continuously. ..., 998, 999, 0, 1, 2, ... This demo out of the box will produce a 100kHz sine wave. (Number of samples * sample rate we wish to use for playback) 1000 samples * 100000 Hz (remember the 1000 samples is ONE sine function cycle!) My (old) frequency counter says 100.128kHz. I wrote this to learn how to code for the ELAB-080 a few months back. I updated it to work with the current DLL that Dynon distributes. They fixed the weirdness with the function call names and a few other things. Look through the code to see what the buttons do. Please feel free to drop me a line if you're stuck. bobd@x-division.com ------------------------------------------------------------------------------ 01-MARCH-2006 12:30PM I added an undocumented feature to check if data is in the buffer before retrieving it from the DSO: bool PollDSOReady() and implemented the new calling convention for CaptureDSOData(): int CaptureDSOData(unsigned int total_blocks, unsigned int pre_trigger_blocks, unsigned int trigger_channel, double trigger_value, unsigned int LA_trigger, unsigned int auto_roll, long OverrideOtherClocks) Note the addition of uint LA_trigger. ------------------------------------------------------------------------------ 02-MARCH-2006 10:13AM Adjusted the sample rate for reading channel 1. Loop the AWG output to DSO1 input and start the AWG. Click capture, then retrieve, and then you should have a plain text file with one data point per line at c:\output.txt. I bring this in with dplot (free demo!) and see a nice pretty graph.