##// END OF EJS Templates
The data of the variable is now requested with the new provided...
The data of the variable is now requested with the new provided parameters

File last commit:

r298:3a08c66e4df2
r305:88a58e69d383
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
r128 #include "CosinusProvider.h"
#include <Data/DataProviderParameters.h>
#include <Data/ScalarSeries.h>
Add cmath header missing
r135 #include <cmath>
Fix the cosinus bug....
r298 #include <QDateTime>
The cosinus provider can now handle data request
r231 Q_LOGGING_CATEGORY(LOG_CosinusProvider, "CosinusProvider")
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 std::unique_ptr<IDataSeries>
CosinusProvider::retrieveData(const DataProviderParameters &parameters) const
{
Add SqpDateTime struct
r191 auto dateTime = parameters.m_Time;
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 // Gets the timerange from the parameters
Add SqpDateTime struct
r191 auto start = dateTime.m_TStart;
auto end = dateTime.m_TEnd;
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128
Fix the cosinus bug....
r298
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 // 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...
r177 = 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
r128
Alexandre Leroux
Add int data index in CosinusProvider
r137 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
r128 scalarSeries->setData(dataIndex, time, std::cos(time));
}
The cosinus provider can now handle data request
r231 return scalarSeries;
}
void CosinusProvider::requestDataLoading(const QVector<SqpDateTime> &dateTimeList)
{
// NOTE: Try to use multithread if possible
Correction for pull request
r243 for (const auto &dateTime : dateTimeList) {
The cosinus provider can now handle data request
r231
auto scalarSeries = this->retrieveDataSeries(dateTime);
emit dataProvided(scalarSeries, dateTime);
}
}
Alexandre Leroux
Fixes Windows compilation
r237 std::shared_ptr<IDataSeries> CosinusProvider::retrieveDataSeries(const SqpDateTime &dateTime)
The cosinus provider can now handle data request
r231 {
Fix the cosinus bug....
r298 auto dataIndex = 0;
The cosinus provider can now handle data request
r231
// Gets the timerange from the parameters
Fix the cosinus bug....
r298 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
r231
// 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....
r298 const auto timeOnFreq = time / freq;
scalarSeries->setData(dataIndex, timeOnFreq, std::cos(timeOnFreq));
The cosinus provider can now handle data request
r231 }
Alexandre Leroux
Creates a default provider that will be returned by the mock plugin
r128 return scalarSeries;
}