Understanding the Plotting
The Plotting is used to handle the data plot windows containing qwt plots and streaming data into them.
1. CGuiMain: Main User Interface
Plot controller and experiment controller are created.
SIGNALs and SLOTs to e.g. CPlotController::CreateWindow() are established.
In the Idle() method, the controllers' Idle() methods are called (e.g. to refresh the data plots).
Holding the plot windows configuration for the current ParadigmType in "GUI/PLOTTING/[PARADIGMTYPE]/PLOTWIN[N]"
SetConfiguration: Creation and showing of CPlotWindow's with given configuration
AddPlotGenerator: Hand a new plot generator over to the controller. Data produced by the generator can now be displayed in each plot window.
Data identification via m_poDataKeys.
Data in m_mapChannelData.CPlotDataHandle
Classes identification via m_lstDisplayClasses.
CExperimentController::MakeEyeposPlots: Create a CADaqPlotGenerator that receives all eye position data recorded in the course of the given trial and turns it into plot data which can be displayed in a plot window. Push the generator to the plot controller.
CExperimentController::MakeAnalogPlots: similar (CADaqPlotGenerator)
CExperimentController::MakeRasterPlots: similar, but create and register CDDaqPlotGenerator as receiver for the trial's recorded data at CDaqFacade
CExperimentController::MakeHistograms: similar, but create and register CDDaqHistogramGenerator as receiver for the trial's recorded data at CDaqFacade
Holds CPlotDataChannels for each registered channel to be plotted.
Handles curves: add, delete, clear, setNumberOfCurves etc.
MakeDataChannel: create CPlotDataChannel or inherited channels like CHistogramDataChannel (both in CPlotDataChannel.cpp)
Make sure, that GetDataChannel is used with the appropriate dynamic_cast to the correct PlotType. This is needed to actually use the overwritten methods (keyword: slicing).
CPlotDataChannel::InitLooks(): actual visual properties of the plots
DoAddCurve: add curve data as new QwtPlotCurve and attach it to the plot