##// END OF EJS Templates
Handles parametric frequency
Alexandre Leroux -
r780:b0b8b5ec2893
parent child
Show More
@@ -0,0 +1,23
1 #ifndef SCIQLOP_MOCKDEFS_H
2 #define SCIQLOP_MOCKDEFS_H
3
4 #include "MockPluginGlobal.h"
5
6 #include <QString>
7 #include <QVariant>
8
9 // ////////////// //
10 // Mock constants //
11 // ////////////// //
12
13 // Metadata for cosinus provider //
14
15 /// Cosinus frequency (Hz)
16 extern SCIQLOP_MOCKPLUGIN_EXPORT const QString COSINUS_FREQUENCY_KEY;
17 extern SCIQLOP_MOCKPLUGIN_EXPORT const QVariant COSINUS_FREQUENCY_DEFAULT_VALUE;
18
19 /// Cosinus type ("scalar" or "vector")
20 extern SCIQLOP_MOCKPLUGIN_EXPORT const QString COSINUS_TYPE_KEY;
21 extern SCIQLOP_MOCKPLUGIN_EXPORT const QVariant COSINUS_TYPE_DEFAULT_VALUE;
22
23 #endif // SCIQLOP_MOCKDEFS_H
@@ -0,0 +1,7
1 #include "MockDefs.h"
2
3 const QString COSINUS_FREQUENCY_KEY = QStringLiteral("cosinusFrequency");
4 const QVariant COSINUS_FREQUENCY_DEFAULT_VALUE = 60.;
5
6 const QString COSINUS_TYPE_KEY = QStringLiteral("cosinusType");
7 const QVariant COSINUS_TYPE_DEFAULT_VALUE = QStringLiteral("scalar");
@@ -1,4 +1,5
1 #include "CosinusProvider.h"
1 #include "CosinusProvider.h"
2 #include "MockDefs.h"
2
3
3 #include <Data/DataProviderParameters.h>
4 #include <Data/DataProviderParameters.h>
4 #include <Data/ScalarSeries.h>
5 #include <Data/ScalarSeries.h>
@@ -24,10 +25,17 std::shared_ptr<IDataSeries> CosinusProvider::retrieveData(QUuid acqIdentifier,
24 // TODO: Add Mutex
25 // TODO: Add Mutex
25 auto dataIndex = 0;
26 auto dataIndex = 0;
26
27
28 // Retrieves frequency
29 auto freqVariant = data.value(COSINUS_FREQUENCY_KEY, COSINUS_FREQUENCY_DEFAULT_VALUE);
30 if (!freqVariant.canConvert<double>()) {
31 qCCritical(LOG_CosinusProvider()) << tr("Can't retrieve data: invalid frequency");
32 return nullptr;
33 }
34
27 // Gets the timerange from the parameters
35 // Gets the timerange from the parameters
28 double freq = 100.0;
36 double freq = freqVariant.toDouble();
29 double start = std::ceil(dataRangeRequested.m_TStart * freq); // 100 htz
37 double start = std::ceil(dataRangeRequested.m_TStart * freq);
30 double end = std::floor(dataRangeRequested.m_TEnd * freq); // 100 htz
38 double end = std::floor(dataRangeRequested.m_TEnd * freq);
31
39
32 // We assure that timerange is valid
40 // We assure that timerange is valid
33 if (end < start) {
41 if (end < start) {
@@ -1,5 +1,6
1 #include "MockPlugin.h"
1 #include "MockPlugin.h"
2 #include "CosinusProvider.h"
2 #include "CosinusProvider.h"
3 #include "MockDefs.h"
3
4
4 #include <DataSource/DataSourceController.h>
5 #include <DataSource/DataSourceController.h>
5 #include <DataSource/DataSourceItem.h>
6 #include <DataSource/DataSourceItem.h>
@@ -20,10 +21,11 std::unique_ptr<IDataProvider> createDataProvider() noexcept
20 return std::make_unique<CosinusProvider>();
21 return std::make_unique<CosinusProvider>();
21 }
22 }
22
23
23 std::unique_ptr<DataSourceItem> createProductItem(const QString &productName,
24 std::unique_ptr<DataSourceItem> createProductItem(const QVariantHash &data,
24 const QUuid &dataSourceUid)
25 const QUuid &dataSourceUid)
25 {
26 {
26 auto result = std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT, productName);
27 auto result = std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT, data);
28 auto productName = data.value(DataSourceItem::NAME_DATA_KEY).toString();
27
29
28 // Add action to load product from DataSourceController
30 // Add action to load product from DataSourceController
29 result->addAction(std::make_unique<DataSourceItemAction>(
31 result->addAction(std::make_unique<DataSourceItemAction>(
General Comments 0
You need to be logged in to leave comments. Login now