##// END OF EJS Templates
Puts hierarchical menu in a 'Plot' menu
Puts hierarchical menu in a 'Plot' menu

File last commit:

r276:3a08c66e4df2
r286:042735c9acd2
Show More
CosinusProvider.cpp
74 lines | 2.0 KiB | text/x-c | CppLexer
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120 #include "CosinusProvider.h"
#include <Data/DataProviderParameters.h>
#include <Data/ScalarSeries.h>
Add cmath header missing
r127 #include <cmath>
Fix the cosinus bug....
r276 #include <QDateTime>
The cosinus provider can now handle data request
r215 Q_LOGGING_CATEGORY(LOG_CosinusProvider, "CosinusProvider")
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120 std::unique_ptr<IDataSeries>
CosinusProvider::retrieveData(const DataProviderParameters &parameters) const
{
Add SqpDateTime struct
r177 auto dateTime = parameters.m_Time;
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120 // Gets the timerange from the parameters
Add SqpDateTime struct
r177 auto start = dateTime.m_TStart;
auto end = dateTime.m_TEnd;
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120
Fix the cosinus bug....
r276
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120 // 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
Alexandre Leroux
Replaces QString unit by a new struct...
r164 = std::make_unique<ScalarSeries>(end - start, Unit{QStringLiteral("t"), true}, Unit{});
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120
Alexandre Leroux
Add int data index in CosinusProvider
r129 auto dataIndex = 0;
for (auto time = start; time < end; ++time, ++dataIndex) {
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120 scalarSeries->setData(dataIndex, time, std::cos(time));
}
The cosinus provider can now handle data request
r215 return scalarSeries;
}
void CosinusProvider::requestDataLoading(const QVector<SqpDateTime> &dateTimeList)
{
// NOTE: Try to use multithread if possible
Correction for pull request
r227 for (const auto &dateTime : dateTimeList) {
The cosinus provider can now handle data request
r215
auto scalarSeries = this->retrieveDataSeries(dateTime);
emit dataProvided(scalarSeries, dateTime);
}
}
Alexandre Leroux
Fixes Windows compilation
r221 std::shared_ptr<IDataSeries> CosinusProvider::retrieveDataSeries(const SqpDateTime &dateTime)
The cosinus provider can now handle data request
r215 {
Fix the cosinus bug....
r276 auto dataIndex = 0;
The cosinus provider can now handle data request
r215
// Gets the timerange from the parameters
Fix the cosinus bug....
r276 double freq = 100.0;
double start = dateTime.m_TStart * freq; // 100 htz
double end = dateTime.m_TEnd * freq; // 100 htz
The cosinus provider can now handle data request
r215
// 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_shared<ScalarSeries>(end - start, Unit{QStringLiteral("t"), true}, Unit{});
for (auto time = start; time < end; ++time, ++dataIndex) {
Fix the cosinus bug....
r276 const auto timeOnFreq = time / freq;
scalarSeries->setData(dataIndex, timeOnFreq, std::cos(timeOnFreq));
The cosinus provider can now handle data request
r215 }
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r120 return scalarSeries;
}