diff --git a/plugins/mockplugin/include/MockDefs.h b/plugins/mockplugin/include/MockDefs.h new file mode 100644 index 0000000..02c23e6 --- /dev/null +++ b/plugins/mockplugin/include/MockDefs.h @@ -0,0 +1,23 @@ +#ifndef SCIQLOP_MOCKDEFS_H +#define SCIQLOP_MOCKDEFS_H + +#include "MockPluginGlobal.h" + +#include +#include + +// ////////////// // +// Mock constants // +// ////////////// // + +// Metadata for cosinus provider // + +/// Cosinus frequency (Hz) +extern SCIQLOP_MOCKPLUGIN_EXPORT const QString COSINUS_FREQUENCY_KEY; +extern SCIQLOP_MOCKPLUGIN_EXPORT const QVariant COSINUS_FREQUENCY_DEFAULT_VALUE; + +/// Cosinus type ("scalar" or "vector") +extern SCIQLOP_MOCKPLUGIN_EXPORT const QString COSINUS_TYPE_KEY; +extern SCIQLOP_MOCKPLUGIN_EXPORT const QVariant COSINUS_TYPE_DEFAULT_VALUE; + +#endif // SCIQLOP_MOCKDEFS_H diff --git a/plugins/mockplugin/src/CosinusProvider.cpp b/plugins/mockplugin/src/CosinusProvider.cpp index f5469cc..21c9151 100644 --- a/plugins/mockplugin/src/CosinusProvider.cpp +++ b/plugins/mockplugin/src/CosinusProvider.cpp @@ -1,4 +1,5 @@ #include "CosinusProvider.h" +#include "MockDefs.h" #include #include @@ -24,10 +25,17 @@ std::shared_ptr CosinusProvider::retrieveData(QUuid acqIdentifier, // TODO: Add Mutex auto dataIndex = 0; + // Retrieves frequency + auto freqVariant = data.value(COSINUS_FREQUENCY_KEY, COSINUS_FREQUENCY_DEFAULT_VALUE); + if (!freqVariant.canConvert()) { + qCCritical(LOG_CosinusProvider()) << tr("Can't retrieve data: invalid frequency"); + return nullptr; + } + // Gets the timerange from the parameters - double freq = 100.0; - double start = std::ceil(dataRangeRequested.m_TStart * freq); // 100 htz - double end = std::floor(dataRangeRequested.m_TEnd * freq); // 100 htz + double freq = freqVariant.toDouble(); + double start = std::ceil(dataRangeRequested.m_TStart * freq); + double end = std::floor(dataRangeRequested.m_TEnd * freq); // We assure that timerange is valid if (end < start) { diff --git a/plugins/mockplugin/src/MockDefs.cpp b/plugins/mockplugin/src/MockDefs.cpp new file mode 100644 index 0000000..75d4574 --- /dev/null +++ b/plugins/mockplugin/src/MockDefs.cpp @@ -0,0 +1,7 @@ +#include "MockDefs.h" + +const QString COSINUS_FREQUENCY_KEY = QStringLiteral("cosinusFrequency"); +const QVariant COSINUS_FREQUENCY_DEFAULT_VALUE = 60.; + +const QString COSINUS_TYPE_KEY = QStringLiteral("cosinusType"); +const QVariant COSINUS_TYPE_DEFAULT_VALUE = QStringLiteral("scalar"); diff --git a/plugins/mockplugin/src/MockPlugin.cpp b/plugins/mockplugin/src/MockPlugin.cpp index f11ebbd..916c3f1 100644 --- a/plugins/mockplugin/src/MockPlugin.cpp +++ b/plugins/mockplugin/src/MockPlugin.cpp @@ -1,5 +1,6 @@ #include "MockPlugin.h" #include "CosinusProvider.h" +#include "MockDefs.h" #include #include @@ -20,10 +21,11 @@ std::unique_ptr createDataProvider() noexcept return std::make_unique(); } -std::unique_ptr createProductItem(const QString &productName, +std::unique_ptr createProductItem(const QVariantHash &data, const QUuid &dataSourceUid) { - auto result = std::make_unique(DataSourceItemType::PRODUCT, productName); + auto result = std::make_unique(DataSourceItemType::PRODUCT, data); + auto productName = data.value(DataSourceItem::NAME_DATA_KEY).toString(); // Add action to load product from DataSourceController result->addAction(std::make_unique(