I need to write an application like a digital oscilloscope. There are many great static static graphical controls, but I need something that can display 16 traces that process 4000 samples per second.
Does anyone know about a high-speed graphical control for .NET? I’ll even take MFC, as this can be wrapped in a .NET control.
Thanks for the help!
How about ZedGraph? They mention real-time applications that are specific here:
http://zedgraph.org/wiki/index.php?title=Display_Dynamic_or_Real-Time_Data
They require at least 20 samples per second.
At 4000 samples per second, I don’t think you want to build all the points in real time, since you are going to do it across the entire screen in 0.25 seconds ...
DirectX is used for .NET bindings (not sure about the current version). It includes support for high-performance 2D and 3D graphics. If anything on Windows can satisfy your requirements, it will be DirectX.
Have you watched GraphViz ? I saw that it is used in oscilloscope applications, but I'm not sure if it will handle the speed you are looking for. GraphViz does not take a live channel of instructions like some of the GDI + controls I've seen.
There are several .NET wrappers for it .
You can see the QCRTGraph . You can also watch this CodeGuru project .
Although, frankly, with your requirements, you could better do your own implementation in C ++. With only 0.25 ms per sample, locking and updating the buffer of any third-party control is too expensive for you.
You can look at Visual Numerics .
I would recommend the Universal DLL for the real-time oscilloscope library . It is only a DLL, but capable of high performance. Take a look at sample applications.
Check this question . I highly recommend IOComp for MFC (ActiveX) and .Net. Very fast and stable.
http://opcactivex.com/Related_Products___Development/Development_Tools/Plot_Pack/screen_iocomp_plotpack.jpg
I would recommend National Instruments for .NET solution. National Instruments has always been a leader in data collection and instrument control. They have a charting / charting library in .NET, however it is commercial.
Repeating graphics (dots and lines in widgets) is pretty simple - you can do it with raw Win32 a la Petzold.
You can take a look at Steema Teechart ( http://www.steema.com/teechart/net ). I must add that I have no practical experience with a very high processing speed.