diff --git a/plugins/amda/include/AmdaResultParserHelper.h b/plugins/amda/include/AmdaResultParserHelper.h index a362858..dbe6cbd 100644 --- a/plugins/amda/include/AmdaResultParserHelper.h +++ b/plugins/amda/include/AmdaResultParserHelper.h @@ -75,6 +75,8 @@ public: void readResultLine(const QString &line) override; private: + void handleDataHoles(); + Properties m_Properties{}; std::vector m_XAxisData{}; std::vector m_YAxisData{}; diff --git a/plugins/amda/src/AmdaResultParserHelper.cpp b/plugins/amda/src/AmdaResultParserHelper.cpp index b31985a..91c2817 100644 --- a/plugins/amda/src/AmdaResultParserHelper.cpp +++ b/plugins/amda/src/AmdaResultParserHelper.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -283,13 +284,14 @@ bool SpectrogramParserHelper::checkProperties() // Sets fill value m_FillValue = m_Properties.value(FILL_VALUE_PROPERTY).value(); - /// @todo: handle min/max samplings? - return true; } std::shared_ptr SpectrogramParserHelper::createSeries() { + // Before creating the series, we handle its data holes + handleDataHoles(); + return std::make_shared( std::move(m_XAxisData), std::move(m_YAxisData), std::move(m_ValuesData), Unit{"t", true}, // x-axis unit is always a time unit @@ -352,6 +354,15 @@ void SpectrogramParserHelper::readResultLine(const QString &line) tryReadResult(m_XAxisData, m_ValuesData, line, m_ValuesIndexes, m_FillValue); } +void SpectrogramParserHelper::handleDataHoles() +{ + // Fills data holes according to the max resolution found in the AMDA file + auto resolution = m_Properties.value(MAX_SAMPLING_PROPERTY).value(); + auto fillValue = m_Properties.value(FILL_VALUE_PROPERTY).value(); + + DataSeriesUtils::fillDataHoles(m_XAxisData, m_ValuesData, resolution, fillValue); +} + // ////////////////// // // VectorParserHelper // // ////////////////// //