Commit 5a638eb119cb5cf42e988c7c25f0caacd63caf32
1 parent
d9c8118b
Exists in
master
and in
45 other branches
Adding comments
Showing
4 changed files
with
81 additions
and
18 deletions
Show diff stats
src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.cc
... | ... | @@ -78,7 +78,7 @@ namespace plot |
78 | 78 | drawLines( |
79 | 79 | pSerie.getLineProperties().getType(), |
80 | 80 | pSerie.getLineProperties().getStyle(), |
81 | - pSerie.getLineProperties().getWidth() + 1, | |
81 | + pSerie.getLineProperties().getWidth(), | |
82 | 82 | lineColor, |
83 | 83 | nbValues, xValuesTemp, yValuesTemp, coloredComputedValues); |
84 | 84 | } |
... | ... | @@ -135,8 +135,8 @@ namespace plot |
135 | 135 | void PlotFunction::createYAxis() |
136 | 136 | { |
137 | 137 | std::string y_label = ""; |
138 | - if (function == PlotFunction::Function::SUM) | |
139 | - y_label = "Sum"; | |
138 | + if (function == PlotFunction::Function::AVG) | |
139 | + y_label = "AVG"; | |
140 | 140 | else |
141 | 141 | y_label = "Amplitude"; |
142 | 142 | |
... | ... | @@ -144,11 +144,9 @@ namespace plot |
144 | 144 | double maxValue = 0; |
145 | 145 | |
146 | 146 | PlotFunction::getMinMax(yValuesMap, &minValue, &maxValue); |
147 | - LOG4CXX_DEBUG(gLogger, "Min value " << minValue << " " | |
148 | - << "Max Value" << maxValue); | |
149 | 147 | // Create X axis |
150 | 148 | boost::shared_ptr<Axis> lYAxis(new Axis(false)); |
151 | - plot::Range range_x = Range(minValue - minValue * 0.1, maxValue + maxValue * 0.1); | |
149 | + plot::Range range_x = Range(minValue - abs(minValue) * 0.10, maxValue + abs(maxValue) * 0.1); | |
152 | 150 | lYAxis.get()->setRange(range_x); |
153 | 151 | lYAxis.get()->_drawn = false; |
154 | 152 | lYAxis.get()->_position = PlotCommon::Position::POS_LEFT; |
... | ... | @@ -216,12 +214,12 @@ namespace plot |
216 | 214 | std::vector<double> xValues; |
217 | 215 | std::vector<double> yValues; |
218 | 216 | |
219 | - if (function == PlotFunction::Function::SUM) | |
217 | + if (function == PlotFunction::Function::AVG) | |
220 | 218 | { |
221 | 219 | double sum = std::accumulate(signal.begin(), signal.end(), 0); |
222 | 220 | for (int i = 0; i < data.getSize(); i++) |
223 | 221 | { |
224 | - yValues.push_back(sum); | |
222 | + yValues.push_back(sum / data.getSize()); | |
225 | 223 | xValues.push_back(timeValues[i]); |
226 | 224 | } |
227 | 225 | } | ... | ... |
src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.hh
... | ... | @@ -28,7 +28,15 @@ extern "C" |
28 | 28 | #include <plplot/qsastime.h> |
29 | 29 | } |
30 | 30 | |
31 | +/** | |
32 | + * @brief Id pour l'axe X qui sera crée | |
33 | + * | |
34 | + */ | |
31 | 35 | #define X_AXIS_ID "x_axis_id" |
36 | +/** | |
37 | + * @brief Id pour l'axe Y qui sera crée | |
38 | + * | |
39 | + */ | |
32 | 40 | #define Y_AXIS_ID "" |
33 | 41 | |
34 | 42 | namespace plot |
... | ... | @@ -37,9 +45,14 @@ namespace plot |
37 | 45 | class PlotFunction : public PanelPlotOutput |
38 | 46 | { |
39 | 47 | public: |
48 | + /** | |
49 | + * @brief enum to represent the type of fucntion to apply for plotfunction feature | |
50 | + * | |
51 | + */ | |
40 | 52 | enum Function |
41 | 53 | { |
42 | 54 | NONE, |
55 | + AVG, | |
43 | 56 | FFT, |
44 | 57 | SUM |
45 | 58 | }; |
... | ... | @@ -135,23 +148,79 @@ namespace plot |
135 | 148 | virtual bool draw(double startTime, double stopTime, int intervalIndex, |
136 | 149 | bool isFirstInterval, bool isLastInterval); |
137 | 150 | |
138 | - // virtual void drawFills(double startDate, double stopDate); | |
139 | - | |
140 | 151 | private: |
141 | 152 | void configureSeriesAxis(); |
142 | 153 | void configureAxisLegend(); |
154 | + /** | |
155 | + * @brief Afficher sur le plot the starting date | |
156 | + * | |
157 | + * @param _timeFormat le format | |
158 | + * @param startTime le start time envoyé depuis le l'ihm | |
159 | + * @param stopTime le stop time envoyé depuis le l'ihm | |
160 | + */ | |
143 | 161 | void drawStartDate(std::string _timeFormat, double startTime, double stopTime); |
162 | + /** | |
163 | + * @brief Créer un axe Y pour accueillir les valeurs calculées de l'axe Y | |
164 | + * | |
165 | + */ | |
144 | 166 | void createYAxis(); |
167 | + /** | |
168 | + * @brief Créer un axe X pour accueillir les valeurs calculées de l'axe X | |
169 | + * | |
170 | + */ | |
145 | 171 | void createXAxis(); |
172 | + /** | |
173 | + * @brief Get the Min Max de xValuesMap et yValuesMap | |
174 | + * | |
175 | + * @param minToFill la variable qui store la valeur minimale | |
176 | + * @param maxToFill la variable qui store la valeur maximale | |
177 | + */ | |
146 | 178 | void getMinMax(std::map<std::string, std::vector<double>>, double *minToFill, double *maxToFill); |
147 | - void compute(AMDA::Common::ParameterIndexComponent pParamIndex, plot::ParameterData data, std::string id, std::string param_id); | |
179 | + /** | |
180 | + * @brief Appliquer le plotfunction soit FFT, SUM, ou AVG pour chaque pseudo-paramètre | |
181 | + * | |
182 | + * @param pParamIndex index of pseudo paramètre | |
183 | + * @param ParameterData qui contient toute les données des paramètres | |
184 | + * @param id id pseudo param | |
185 | + * @param param_id id du paramètre | |
186 | + */ | |
187 | + void compute(AMDA::Common::ParameterIndexComponent pParamIndex, plot::ParameterData data, std::string id, std::string param_id); | |
148 | 188 | |
189 | + /** | |
190 | + * @brief Une map pour stocker les valeurs calculées de l'axe X associés aux pseudo paramètres crées localement | |
191 | + * | |
192 | + */ | |
149 | 193 | std::map<std::string, std::vector<double>> xValuesMap; |
194 | + /** | |
195 | + * @brief Une map pour stocker les valeurs calculées de l'axe Y associés aux pseudo paramètres crées localement | |
196 | + * | |
197 | + */ | |
150 | 198 | std::map<std::string, std::vector<double>> yValuesMap; |
199 | + /** | |
200 | + * @brief Type de function envoyée par l'IHM | |
201 | + * @see Function | |
202 | + */ | |
151 | 203 | Function function; |
204 | + /** | |
205 | + * @brief Un vecteur qui associe l'id du vrai paramètre et le nb points choisi par l'ihm pour appliquer FFT | |
206 | + * | |
207 | + */ | |
152 | 208 | std::vector<std::string> paramsNbPoints; |
209 | + /** | |
210 | + * @brief Type d'abscisse en cas de FFT | |
211 | + * @see Abscisse | |
212 | + * | |
213 | + */ | |
153 | 214 | Abscisse abscisse; |
215 | + /** | |
216 | + * @brief Scale of abscisse | |
217 | + * | |
218 | + */ | |
154 | 219 | Axis::Scale abscisseScale; |
220 | + /** | |
221 | + * @brief Scale for ordonnée | |
222 | + * | |
223 | + */ | |
155 | 224 | Axis::Scale ordonneeScale; |
156 | 225 | std::shared_ptr<TimeAxisDecorator> _xdecoratorPtr; |
157 | 226 | }; | ... | ... |
src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.cc
... | ... | @@ -63,8 +63,8 @@ namespace plot |
63 | 63 | if (value) |
64 | 64 | { |
65 | 65 | const char *valueString = (const char *)value; |
66 | - if (strcmp(valueString, PlotFunctuion_Type_SUM) == 0) | |
67 | - plot->setFunction(PlotFunction::Function::SUM); | |
66 | + if (strcmp(valueString, PlotFunctuion_Type_AVG) == 0) | |
67 | + plot->setFunction(PlotFunction::Function::AVG); | |
68 | 68 | else if (strcmp(valueString, PlotFunctuion_Type_FFT) == 0) |
69 | 69 | plot->setFunction(PlotFunction::Function::FFT); |
70 | 70 | else |
... | ... | @@ -108,7 +108,6 @@ namespace plot |
108 | 108 | { |
109 | 109 | tokens.push_back(token); |
110 | 110 | } |
111 | - LOG4CXX_DEBUG(gLogger, tokens[0] << " COUCOU " << tokens[1]); | |
112 | 111 | plot->setParamsNbPoints(tokens); |
113 | 112 | xmlFree(value); |
114 | 113 | } |
... | ... | @@ -122,8 +121,6 @@ namespace plot |
122 | 121 | else if (strcmp(valueAbscisseScale, PlotFunction_Log) == 0) |
123 | 122 | plot->setAbscisseScale(Axis::Scale::LOGARITHMIC); |
124 | 123 | |
125 | - LOG4CXX_DEBUG(gLogger, valueAbscisseScale); | |
126 | - LOG4CXX_DEBUG(gLogger, plot->getAbscisseScale()); | |
127 | 124 | xmlFree(value); |
128 | 125 | } |
129 | 126 | |
... | ... | @@ -136,8 +133,6 @@ namespace plot |
136 | 133 | |
137 | 134 | else if (strcmp(valueOrdonneeScale, PlotFunction_Log) == 0) |
138 | 135 | plot->setOrdonneeScale(Axis::Scale::LOGARITHMIC); |
139 | - LOG4CXX_DEBUG(gLogger, valueOrdonneeScale); | |
140 | - LOG4CXX_DEBUG(gLogger, plot->getOrdonneeScale()); | |
141 | 136 | xmlFree(value); |
142 | 137 | } |
143 | 138 | else | ... | ... |
src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.hh
... | ... | @@ -25,6 +25,7 @@ namespace plot |
25 | 25 | #define PlotFunctuion_Type "type" |
26 | 26 | #define PlotFunctuion_Type_FFT "FFT" |
27 | 27 | #define PlotFunctuion_Type_SUM "SUM" |
28 | +#define PlotFunctuion_Type_AVG "AVG" | |
28 | 29 | #define PlotFunctuion_Params_Nb_Points "param_nb_points" |
29 | 30 | #define PlotFunction_Linear "Linear" |
30 | 31 | #define PlotFunction_Log "Log" | ... | ... |