Add scrolling graphs, meters, bar graphs, gauges, annunciators, dynamic text, and UI controls to Windows WPF workstation and WPF web applications using the Real-Time Graphics Tools for WPF.
JPEG Images of some of the example programs that are included with the software. Click on the thumbnail image to view at actual size.
Instrumentation GUI and Graphics
Real-Time Financial Charting
Bio-Medical and Exercise Physiology
Laboratory and Industrial Data Acquisition and Control
The Real-Time Graphics Tools for WPF toolkit, entirely written using C# managed code, is for developers who want to add sophisticated real-time graphics to their Windows WPF workstation- based and WPF web-based applications. The software integrates the QCChart2D charting software with real-time data structures and specialized rendering routines. It is designed for on-the-fly rendering of the real-time data using new specialized classes for scrolling graphs, gauges (bar graphs), meters, annunciators and text. Plot objects created using the QCChart2D classes can be freely mixed with the new Real-Time Graphics Tools for WPF classes. Advanced user interface features such as zooming and tool-tips can used with real-time scrolling charts. A process variable class manages real-time data, an unlimited number of alarms, and data archiving. A PID (Proportional, Integral and Derivative) control class implements sophisticated control algorithms applicable in a wide array of applications. Real-Time displays can be sent to supported output devices at the resolution of the device, creating presentation quality printouts, slides, or transparencies.
Download Demo (689KB) – Download a demo program, displaying real-time graphs from different industries, you can run from Windows. Since it uses .Net 6 it should be run under Windows 10 or higher. Unzip the download and run the exe file in the resulting QCRTGraphWPFDemoNet6 folder.
The current software now uses .Net Framework 6. The QCRTGraph libraries, and all of the example programs have been recreated to use .Net Framework 6. All of the projects have been recreated for Visual Studio 2022.
New Features added to Revision 3
Revision 3 is mostly about the QCSPCChart products. One major change in QCChart2D is that XOR routines are now longer used, which make the software data cursor and zooming routines compatible with Windows display magnification levels other than 100%.
New Features added to Revision 2.0
New scrolling support – for elapsed time coordinate systems
Vertical scrolling – with auto-scaling for numeric, time/date and elapsed time coordinate system.
A collection of UserControl based “Auto” classes – simplify the creation of bar indicators, meters, dials, clocks, panel meters and scrolling graphs.
RTProcessVarViewer – a class for the grid-like display of process variable historical data in a table
Design Considerations
Updates of data classes are asynchronous with rendering of graphics to the screen.
Real-Time plot objects are derived from QCChart2D plot objects resulting in standardized methods for setting plot object properties.
Any standard plot type from the QCChart2D software package, both simple and group plot types, can be implemented as scrolling graphs.
There are no limits on the number of process variable channels, no limits on the number of alarm limits associated with a process variable, no limits on the number of real-time plots in a graph.
The update of real-time objects will not interfere or overwrite other objects and will follow the z-order precedence established when the graph was created.
Feature Summary
Includes the QCChart2D Charting Tools for WPF – The Real-Time Graphics Tools for WPF includes the complete QCChart2D Charting Tools for WPF.
Visual Studio 2022 and higher – Starting with Revision 3.1, we have eliminated support for all versions of Visual Studio earlier than 2022. This way we no longer have to configure the libraries for the lowest common denominator of .Net, and can use new .Net features not found in original version. The software is compatible with Visual Studio 2022, and higher. All example program projects are in Visual Studio 2022 format, and automatically convert to later versions of it if loaded using a later compiler. The standard DLLs are compiled for a target of .Net Framework 6. This means it should be compatible with programs written with that target or higher. There are no legacy dependencies associated with the earlier .Net runtime libraries. We have also eliminated all of the Visual Basic example projects. And we have eliminated the Asp.Net WebForms projects, because Visual Studio 2022 and .Net 6 no longer supports creating Asp.Net WebForms projects. See our QCRTGraph for JavaScript/TypeScript if you want to add charts to any type of web page which supports JavaScript.
Windows 32-bit/64-bit Compatible – The software will run as 32-bit on Windows 32-bit operating systems (XP and later 32-bit versions of Windows) and as 64-bit on Windows 64-bit operating systems. This is a feature of programs and libraries written using .Net (Version 2.0 or greater) in general.
Based on the WPF Retained Graphics Drawing Framework – Compatible with WPF components and applications.
100% Managed .Net Code – The software is entirely written in C#, resulting in provide better performance and scalability. Managed .Net code makes applications easier to deploy and maintain.
Process Variable and Alarms – Real-time data is stored in RTProcessVar classes. The RTProcessVar class is designed to represent a single process variable, complete with limit values, an unlimited number of high and low alarms, historical data storage, and descriptive strings for use in displays.
Clockwise from top: Solid bar indicator, segmented bar indicator, custom segmented bar indicator, horizontal solid bar indicator, segmented bar indicator with a multi-color gradient, and pointer indicator. Only the bars represent (and pointer) represent the bar indicators. Other items also shown include axes, axis labels, panel meters, and alarm indicators.
There are an infinite number of meter designs possible using a variety of meter arc ranges, meter scales, meter axes and meter indicator types
Single Value Indicators – A single value indicator is a real-time display object that is attached to a single RTProcessVar object. This includes single channel bar indicators (which includes solid, segmented, custom and pointer bar indicators), meter indicators (which includes meter needles, meter arcs and meter symbol indicators), single channel annunciator indicators, panel meter indicators and scrolling graph plots based on a QCChart2D SimplePlot chart object.
The only limit to the number of annunciator cells you can have in an RTMultiValueAnnunciator graph is the size of the display and the readability of the text.
.
Each bar in the RTMultiBarIndicator can have individual colors and alarm limits
Multi-color gradients can be mapped to bars in the RTMultiBarIndicator
The RTGroupMultiValuePlot class turns QCChart2DGroupPlot objects, like theMultiLinePlot object above, into scrolling plots.
Multiple Value Indicators – A multiple value indicator is a real-time display object that is attached to a group of RTProcessVar objects. This includes multiple channel bar indicators (which includes solid, segmented, custom and pointer bar indicators), multiple channel annunciator indicators, panel meter indicators organized in a grid, and scrolling graph plots based on a QCChart2D GroupPlot chart object.
The alarm indicators can have one of three forms: pointer style symbols, horizontal or vertical lines, or horizontal or vertical filled areas.
Alarm Indicators – Alarm indicators are used to display alarm lines, symbols and fill areas for the RTProcessVar objects associated with the single value and multiple value indicator classes.
Numeric panel meters can be the primary display method for real-time data, or they can be used as adjuncts to other real-time indicators such as bar indicators and meters.
Panel Meter Indicators – The RTPanelMeter derived classes are special cases of the single value indicator classes that are used throughout the software to display real-time data in a text format. Panel meters are available for numeric values, string values, time/date values and alarm
A useful benefit of multiple meter scales is the ability to display both Fahrenheit and Centigrade scales at the same time.
Meter tick mark strings can be horizontal, parallel and perpendicular to the tick mark.
Meter Axis Objects – Meter indicators needed new classes to support the drawing of meter axes, meter axis labels and meter alarm objects.
RTFormControlGrid objects are arranged in a row x column format. Additional panel meter objects (numeric and string panel meters in the track bar example above) can be attached to the primary control grid object.
Form Control Classes – The .Net Button and TrackBar objects have been subclassed and enhanced for use in instrument panels. The RTControlButton class implements on/off colors and on/off text for momentary, toggle and radio button style buttons. The RTTrackBar class adds real-world scaling based on double values to the integer based TrackBar class. RTControlButton and RTTrackBar objects can be group together in a grid, organizing the control objects functionally and visually.
A display can have multiple scroll frames. The frames can be in separate plots and update in a synchronized fashion, or they can overlap the same plotting area.
A vertical scroll frame can manage a time/date, an elapsed time, or a numeric, vertical scrolling coordinate system.
Scroll Frame – A scroll frame manages constant rescaling of coordinate systems of plot objects that are displayed in a scrolling graph. Revision 2.0 adds a vertical scroll frame to the software.
The RTAuto…Indicator objects can be placed directly on a .Net form.
RTAuto… Indicator Classes – New classes have been added to simplify the creation of bar indicators, meters, dials, clocks, panel meters and scrolling graphs. These classes encapsulate all of the elements needed to create a particular real-time indicator type: coordinate system, axes, axes labels, titles, process variable, alarms, and panel meters for numeric readouts and alarm status. The auto-indicator classes are setup as a self contained UserControl derived objects, placeable on a form, and can be modified using methods and properties.
The RTProcessViewer grid displays the historical data for an RTProcessVar object
Process Variable Viewer – the RTProcessVarViewer class displays the historical data of a process variable in a grid like table.
Documentation and Demo/Example Programs – The software includes a comprehensive 400 page user manual with many programming examples, XML help for every class. Every programming example, and example program is presented in C#.
Real-Time Graphics Tools for WPF Developer Licensing
The QCRTGraph Developer License is available in a Developers Version (model # WPF-RTG-DEVR) that does not time out. Free updates for two years.
The QCRTGraph Developer License is licensed to a single individual. It cannot be used by multiple people at the same company, unless a separate license is purchased for each person. Site licenses are also available. Contact sales@quinn-curtis.com with details of how many seats you wish to purchase and we will respond with a quote.
The QCRTGraph software does not use a redistributable license. The basic developer license permits you to include QCRTGraph as part of your application and distribute an unlimited number royalty free.Real-Time Graphics Tools for WPF Redistributable Licensing
The basic developer license permits you to include QCRTGraph as part of your application and distribute an unlimited number of copies of your application, royalty free. We do not allow developers to use this software to create a graphics toolkit (a library or any type of graphics component that will be used in combination with a program development environment) for resale to other developers.
Custom Programming Services
QCRTGraph is an extremely powerful and flexible software package. It contains over 1500 methods and properties in more than 150 classes. The user manual and help file documentation are more than 1500 pages. This can be overwhelming to the average programmer who wants to start programming today and have the prototype of an application working in a week.
The variety of user interfaces for real-time graphics applications is as diverse as the industries using the software. The end-user of an application in the automotive industry expects to interact with the real-time display in a manner different than that of an end-user involved in real-time stock trading. The same can be said for other industries: health care, semiconductors, quality control, biotechnology, etc.
That is why we have written so many outstanding example programs, pulled from a wide variety of industries using many different styles of user interface.
We know that your application may be similar to, but still uniquely different from any of our example programs. To that end we offer our programming services to write for you a custom example program that demonstrates how to code the real-time display format and user interface you want. That jump start to your project can save you many weeks of work and make you look like a real-time graphics programming genius. All you have to be able to do is describe in detail what you want the example to do.
Using QCRTGraph for .Net/WPF, our range of expertise includes VB, and C# programming languages, and Xamarin cross platform development. For more information or a quote, please contact our sales department at sales@quinn-curtis.com. Doesn’t have the features you need ? Let us know what those are so we can add them in a subsequent release. Contact: info@quinn-curtis.com