diff --git a/plugins/mockplugin/include/CosinusProvider.h b/plugins/mockplugin/include/CosinusProvider.h new file mode 100644 index 0000000..cc48a53 --- /dev/null +++ b/plugins/mockplugin/include/CosinusProvider.h @@ -0,0 +1,16 @@ +#ifndef SCIQLOP_COSINUSPROVIDER_H +#define SCIQLOP_COSINUSPROVIDER_H + +#include + +/** + * @brief The CosinusProvider class is an example of how a data provider can generate data + */ +class CosinusProvider : public IDataProvider { +public: + /// @sa IDataProvider::retrieveData() + std::unique_ptr + retrieveData(const DataProviderParameters ¶meters) const override; +}; + +#endif // SCIQLOP_COSINUSPROVIDER_H diff --git a/plugins/mockplugin/src/CosinusProvider.cpp b/plugins/mockplugin/src/CosinusProvider.cpp new file mode 100644 index 0000000..b6e4e12 --- /dev/null +++ b/plugins/mockplugin/src/CosinusProvider.cpp @@ -0,0 +1,28 @@ +#include "CosinusProvider.h" + +#include +#include + +std::unique_ptr +CosinusProvider::retrieveData(const DataProviderParameters ¶meters) const +{ + // Gets the timerange from the parameters + auto start = parameters.m_TStart; + auto end = parameters.m_TEnd; + + // We assure that timerange is valid + if (end < start) { + std::swap(start, end); + } + + // Generates scalar series containing cosinus values (one value per second) + auto scalarSeries + = std::make_unique(end - start, QStringLiteral("t"), QStringLiteral("")); + + for (auto time = start; time < end; ++time) { + auto dataIndex = time - start; + scalarSeries->setData(dataIndex, time, std::cos(time)); + } + + return scalarSeries; +}