2090
Comment:
|
← Revision 14 as of 2016-02-05 09:44:02 ⇥
2482
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
== CGuiMain == | == CGuiMain: Main User Interface == |
Line 13: | Line 13: |
plot controller and experiment controller are created. | Plot controller and experiment controller are created. |
Line 15: | Line 16: |
In the Idle() method, the controllers' Idle() methods are called. | In the Idle() method, the controllers' Idle() methods are called (e.g. to refresh the data plots). |
Line 19: | Line 21: |
Administration of 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. |
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'''. |
Line 29: | Line 35: |
CExperimentController::!MakeEyeposPlots | '''CExperimentController::!MakeEyeposPlots''': |
Line 31: | Line 37: |
CExperimentController::!MakeAnalogPlots | '''CExperimentController::!MakeAnalogPlots''': |
Line 33: | Line 40: |
CExperimentController::!MakeRasterPlots | '''CExperimentController::!MakeRasterPlots''': |
Line 35: | Line 43: |
CExperimentController::!MakeHistograms | '''CExperimentController::!MakeHistograms''': |
Line 40: | Line 49: |
holds CPlotDataChannels for each registered channel to be plotted | Holds '''CPlotDataChannels''' for each registered channel to be plotted. |
Line 42: | Line 52: |
MakeDataChannel: create CHistogramDataChannel or CPlotDataChannel (both in CPlotDataChannel.cpp) | '''!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).''' |
Line 46: | Line 59: |
CPlotDataChannel::!InitLooks(): actual visual properties of the plots DoAddCurve: add curve data as new QwtPlotCurve and attach it to the plot |
'''CPlotDataChannel::!InitLooks()''': '''actual visual properties of the plots''' '''!DoAddCurve''': add curve data as new '''!QwtPlotCurve''' and attach it to the plot |
Understanding the Plotting
Contents
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).
2. CPlotController
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.
3. CExperimentController
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
4. CQwtPlot
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).
5. CPlotDataChannel
CPlotDataChannel::InitLooks(): actual visual properties of the plots
DoAddCurve: add curve data as new QwtPlotCurve and attach it to the plot