Hello,
I have following problem I am writing program for OCT measurement. It consists of four Queued state machines.
the first one takes care about user interaction
the second one is for DAQ
the third one communicates with ESP 300
and the fourth one processes data acquired in DAQ loop and passed in other queue.
Usually we acquire aprox. each 100ms 8000samples but 2000 are cut off, so into processing goes only 6000 samples each time. This data after processing should be added into Intensity Chart that works as a sweep chart. The History length of this chart is set to 1001. I understood that when I write first captured and processed data into the chart it allocates memory for whole history and it allocates the memory as one continuous part of RAM. So it should mean 1001x6000 and because data are doubles that take 8bytes each the result should be aprox 45MB. Is that right?
So now everything goes OK when we send to this chart around 200 of these 1D arrays (6000samples each 100ms) When the 200th array is sent the x axis is flipped and history erased than is starts filling the chart again.
The problem is that when we send around 500 1D arrays we are in trouble. In the beginning it goes fine but after while acquired data cumulates in the data queue more the chart is filled. When the last point is reached and the history is cleared it starts to fill again fast but it cannot process all data in the queue and after some time it starts to cumulate the data again. And more data in queue slower the application goes.
Can somebody clarify me this behaviour? When the memory is allocated in the beginning why it slows when the chart is fuller? It little helps when I switch to another Tab in the application and I don’t see the tab (hmmm but I have to see what I measure) so I suppose the whole problem is in the data drawing. Is there any way how to improve this?
I also attach the application. The top vi is in TOP folder
Thanks for any help
Message Edited by ceties on 04-05-2007 04:44 AM
LV 2011, Win7