I need to write a digital oscilloscope type application. There are many great static graphing controls out there, but I need something that can graph 16 traces processing 4000 samples per second.
Is anyone aware of a high speed graphing control for .NET? I'll even take MFC since that can be wrapped into a .NET control.
Thanks for the help!
How about ZedGraph? They mention realtime applications specifically here:
http://zedgraph.org/wiki/index.php?title=Display_Dynamic_or_Real-Time_Data
They claim at least ~20 samples per second.
At 4000 samples per second I don't think you're going to want to plot all the points in real time since you're going to make it all the way across the screen in 0.25 seconds...
DirectX used to have .NET bindings (not sure about current version). It includes support for high-performance 2D and 3D graphics. If anything on Windows can meet your requirements, it will be DirectX.
Have you looked at GraphViz? I've seen it used in oscilloscope applications, but I'm not positive it will handle the speed you're looking for. GraphViz doesn't take a 'live feed' of instructions like some of the GDI+ controls I've seen.
There are some .NET wrappers for it.
You can take a look at QCRTGraph control. You can also look at this CodeGuru project.
Though, honestly, with your requirements you might be better off doing your own C++ implementation of it. With only 0.25ms per sample, locking and updating the buffer of any third party control is too expensive for you to afford.
You might look at Visual Numerics.
I'd recommend the Universal Real-Time Software Oscilloscope GUI DLL Library. It's only a DLL, but is capable of high performance. Take a look at the example applications.
Check out this question. I highly recommend IOComp for both MFC (ActiveX) and .Net. Very fast and stable.
http://opcactivex.com/Related_Products___Development/Development_Tools/Plot_Pack/screen_iocomp_plotpack.jpg
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With