diff --git a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.cc b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.cc index fdadf1f..88b0585 100644 --- a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.cc +++ b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.cc @@ -78,7 +78,7 @@ namespace plot drawLines( pSerie.getLineProperties().getType(), pSerie.getLineProperties().getStyle(), - pSerie.getLineProperties().getWidth() + 1, + pSerie.getLineProperties().getWidth(), lineColor, nbValues, xValuesTemp, yValuesTemp, coloredComputedValues); } @@ -135,8 +135,8 @@ namespace plot void PlotFunction::createYAxis() { std::string y_label = ""; - if (function == PlotFunction::Function::SUM) - y_label = "Sum"; + if (function == PlotFunction::Function::AVG) + y_label = "AVG"; else y_label = "Amplitude"; @@ -144,11 +144,9 @@ namespace plot double maxValue = 0; PlotFunction::getMinMax(yValuesMap, &minValue, &maxValue); - LOG4CXX_DEBUG(gLogger, "Min value " << minValue << " " - << "Max Value" << maxValue); // Create X axis boost::shared_ptr lYAxis(new Axis(false)); - plot::Range range_x = Range(minValue - minValue * 0.1, maxValue + maxValue * 0.1); + plot::Range range_x = Range(minValue - abs(minValue) * 0.10, maxValue + abs(maxValue) * 0.1); lYAxis.get()->setRange(range_x); lYAxis.get()->_drawn = false; lYAxis.get()->_position = PlotCommon::Position::POS_LEFT; @@ -216,12 +214,12 @@ namespace plot std::vector xValues; std::vector yValues; - if (function == PlotFunction::Function::SUM) + if (function == PlotFunction::Function::AVG) { double sum = std::accumulate(signal.begin(), signal.end(), 0); for (int i = 0; i < data.getSize(); i++) { - yValues.push_back(sum); + yValues.push_back(sum / data.getSize()); xValues.push_back(timeValues[i]); } } diff --git a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.hh b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.hh index 282b6f6..54e4932 100644 --- a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.hh +++ b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunction.hh @@ -28,7 +28,15 @@ extern "C" #include } +/** + * @brief Id pour l'axe X qui sera crée + * + */ #define X_AXIS_ID "x_axis_id" +/** + * @brief Id pour l'axe Y qui sera crée + * + */ #define Y_AXIS_ID "" namespace plot @@ -37,9 +45,14 @@ namespace plot class PlotFunction : public PanelPlotOutput { public: + /** + * @brief enum to represent the type of fucntion to apply for plotfunction feature + * + */ enum Function { NONE, + AVG, FFT, SUM }; @@ -135,23 +148,79 @@ namespace plot virtual bool draw(double startTime, double stopTime, int intervalIndex, bool isFirstInterval, bool isLastInterval); - // virtual void drawFills(double startDate, double stopDate); - private: void configureSeriesAxis(); void configureAxisLegend(); + /** + * @brief Afficher sur le plot the starting date + * + * @param _timeFormat le format + * @param startTime le start time envoyé depuis le l'ihm + * @param stopTime le stop time envoyé depuis le l'ihm + */ void drawStartDate(std::string _timeFormat, double startTime, double stopTime); + /** + * @brief Créer un axe Y pour accueillir les valeurs calculées de l'axe Y + * + */ void createYAxis(); + /** + * @brief Créer un axe X pour accueillir les valeurs calculées de l'axe X + * + */ void createXAxis(); + /** + * @brief Get the Min Max de xValuesMap et yValuesMap + * + * @param minToFill la variable qui store la valeur minimale + * @param maxToFill la variable qui store la valeur maximale + */ void getMinMax(std::map>, double *minToFill, double *maxToFill); - void compute(AMDA::Common::ParameterIndexComponent pParamIndex, plot::ParameterData data, std::string id, std::string param_id); + /** + * @brief Appliquer le plotfunction soit FFT, SUM, ou AVG pour chaque pseudo-paramètre + * + * @param pParamIndex index of pseudo paramètre + * @param ParameterData qui contient toute les données des paramètres + * @param id id pseudo param + * @param param_id id du paramètre + */ + void compute(AMDA::Common::ParameterIndexComponent pParamIndex, plot::ParameterData data, std::string id, std::string param_id); + /** + * @brief Une map pour stocker les valeurs calculées de l'axe X associés aux pseudo paramètres crées localement + * + */ std::map> xValuesMap; + /** + * @brief Une map pour stocker les valeurs calculées de l'axe Y associés aux pseudo paramètres crées localement + * + */ std::map> yValuesMap; + /** + * @brief Type de function envoyée par l'IHM + * @see Function + */ Function function; + /** + * @brief Un vecteur qui associe l'id du vrai paramètre et le nb points choisi par l'ihm pour appliquer FFT + * + */ std::vector paramsNbPoints; + /** + * @brief Type d'abscisse en cas de FFT + * @see Abscisse + * + */ Abscisse abscisse; + /** + * @brief Scale of abscisse + * + */ Axis::Scale abscisseScale; + /** + * @brief Scale for ordonnée + * + */ Axis::Scale ordonneeScale; std::shared_ptr _xdecoratorPtr; }; diff --git a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.cc b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.cc index 4fd9f10..6b2bc80 100644 --- a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.cc +++ b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.cc @@ -63,8 +63,8 @@ namespace plot if (value) { const char *valueString = (const char *)value; - if (strcmp(valueString, PlotFunctuion_Type_SUM) == 0) - plot->setFunction(PlotFunction::Function::SUM); + if (strcmp(valueString, PlotFunctuion_Type_AVG) == 0) + plot->setFunction(PlotFunction::Function::AVG); else if (strcmp(valueString, PlotFunctuion_Type_FFT) == 0) plot->setFunction(PlotFunction::Function::FFT); else @@ -108,7 +108,6 @@ namespace plot { tokens.push_back(token); } - LOG4CXX_DEBUG(gLogger, tokens[0] << " COUCOU " << tokens[1]); plot->setParamsNbPoints(tokens); xmlFree(value); } @@ -122,8 +121,6 @@ namespace plot else if (strcmp(valueAbscisseScale, PlotFunction_Log) == 0) plot->setAbscisseScale(Axis::Scale::LOGARITHMIC); - LOG4CXX_DEBUG(gLogger, valueAbscisseScale); - LOG4CXX_DEBUG(gLogger, plot->getAbscisseScale()); xmlFree(value); } @@ -136,8 +133,6 @@ namespace plot else if (strcmp(valueOrdonneeScale, PlotFunction_Log) == 0) plot->setOrdonneeScale(Axis::Scale::LOGARITHMIC); - LOG4CXX_DEBUG(gLogger, valueOrdonneeScale); - LOG4CXX_DEBUG(gLogger, plot->getOrdonneeScale()); xmlFree(value); } else diff --git a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.hh b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.hh index f265500..3f46fa5 100644 --- a/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.hh +++ b/src/ParamOutputImpl/Plot/InstantPlot/PlotFunctionNode.hh @@ -25,6 +25,7 @@ namespace plot #define PlotFunctuion_Type "type" #define PlotFunctuion_Type_FFT "FFT" #define PlotFunctuion_Type_SUM "SUM" +#define PlotFunctuion_Type_AVG "AVG" #define PlotFunctuion_Params_Nb_Points "param_nb_points" #define PlotFunction_Linear "Linear" #define PlotFunction_Log "Log" -- libgit2 0.21.2