views:

1042

answers:

9

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!

+1  A: 

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.

Robert S.
+3  A: 

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...

Ian Hopkinson
A: 

The graphics rednereing (points and lines on a widget) is fairly simple - you could do this with raw Win32 a la Petzold.

ConcernedOfTunbridgeWells
+1  A: 

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.

Franci Penov
+1  A: 

You might look at Visual Numerics.

JasonS
+2  A: 

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.

gimel
You're right. I was thinking DirectX for performance reasons. I just don't want to have to write my own control if I can use someone else's implementation.
Kevin
+1  A: 

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.

Uhall
+1  A: 
Aidan Ryan
A: 

Hi Kevin,

I would recommend a National Instruments solution for .NET. National Instruments always had a leading position in data acquisition and instrument control. They have a library for charting/graphing in .NET however it is commercial.

Enrico