This is my try to use koolplot for my projects.
Original koolplot is a C++ source to plot graphs using WinBGI
with a syntax IMHO similar to Matlab. It seems to be 20 years old.
Koolplot isn't cool.
I need a solution, best residing in a DLL, that creates a Win32
window class "xyplot", that can plot Y or XY data out of a buffer
using a user-defined extractor function, to be fast and memory-saving.
Plotting mathematical functions is less important.
I have changed the source to trash the code concerning special "NOPLOT"
sequences for color change.
Instead, I added code to handle multiple traces in one plot.
The net result is, you cannot use the << operator to add another trace yet.
The final "xyplot" class should:
* support multiple axes and plot areas
(similar to LabVIEWs Mixed Signal Graph but without its bugs and its fixed plot legend)
* support analog and digital waveform
* support child and popup style
* auto-position all sub-elements (as done in original koolplot)
* auto-scale (as done in original koolplot)
* support editable graphs
* support different display styles (possibly slower than line plot)
* support logarithmic, absolute and relative time, and user-defineable axes
* support zooming, panning with overview window as in Funkuhr.exe or jBEAM
* support cursors, annotations, plot legend, cursor legend, background image
* support multi-trigger
* be fast in updating!! Using point-reducing polygons covering mins and maxs
of a (possibly million-sample) waveform, and mean value as a line in the middle
(virtual phosphor is probably too complicated to realize)
And I don't need the Matlab-style usage.
I have the following usage scenarios:
* For an oven, edit the desired temperature curve by mouse or table,
and when baking process is running, plot set and real temperatures
in a magnified area while the entire curve is shown in a corner of the plot
* For any slow process including ovens, edit digital states (outputs) by mouse
* For motor control, fast plotting of current waveforms,
with auto-decay, multiple triggers, scope-alike,
and editing desired (non-sinusodial) waveform by mouse or table
I have made some small changes for different Microsoft compilers,
and you see the evil code bloat with every newer version.
(All 3 .exe files do the same).
MSVC2017 supports lambda expressions for "inline functions".
heha, January 2020
Detected encoding: ASCII (7 bit) | 2
|