@@ -114,11 +114,14 std::shared_ptr<IDataSeries> CosinusProvider::retrieveData(QUuid acqIdentifier, | |||||
114 | // included) |
|
114 | // included) | |
115 | auto dataCount = end - start + 1; |
|
115 | auto dataCount = end - start + 1; | |
116 |
|
116 | |||
|
117 | // Number of components (depending on the cosinus type) | |||
|
118 | auto componentCount = type->componentCount(); | |||
|
119 | ||||
117 | auto xAxisData = std::vector<double>{}; |
|
120 | auto xAxisData = std::vector<double>{}; | |
118 | xAxisData.resize(dataCount); |
|
121 | xAxisData.resize(dataCount); | |
119 |
|
122 | |||
120 | auto valuesData = std::vector<double>{}; |
|
123 | auto valuesData = std::vector<double>{}; | |
121 | valuesData.resize(dataCount); |
|
124 | valuesData.resize(dataCount * componentCount); | |
122 |
|
125 | |||
123 | int progress = 0; |
|
126 | int progress = 0; | |
124 | auto progressEnd = dataCount; |
|
127 | auto progressEnd = dataCount; | |
@@ -128,7 +131,13 std::shared_ptr<IDataSeries> CosinusProvider::retrieveData(QUuid acqIdentifier, | |||||
128 | const auto timeOnFreq = time / freq; |
|
131 | const auto timeOnFreq = time / freq; | |
129 |
|
132 | |||
130 | xAxisData[dataIndex] = timeOnFreq; |
|
133 | xAxisData[dataIndex] = timeOnFreq; | |
131 | valuesData[dataIndex] = std::cos(timeOnFreq); |
|
134 | ||
|
135 | // Generates all components' values | |||
|
136 | // Example: for a vector, values will be : cos(x), cos(x)/2, cos(x)/3 | |||
|
137 | auto value = std::cos(timeOnFreq); | |||
|
138 | for (auto i = 0; i < componentCount; ++i) { | |||
|
139 | valuesData[componentCount * dataIndex + i] = value / (i + 1); | |||
|
140 | } | |||
132 |
|
141 | |||
133 | // progression |
|
142 | // progression | |
134 | int currentProgress = (time - start) * 100.0 / progressEnd; |
|
143 | int currentProgress = (time - start) * 100.0 / progressEnd; | |
@@ -153,8 +162,8 std::shared_ptr<IDataSeries> CosinusProvider::retrieveData(QUuid acqIdentifier, | |||||
153 | // We can close progression beacause all data has been retrieved |
|
162 | // We can close progression beacause all data has been retrieved | |
154 | emit dataProvidedProgress(acqIdentifier, 100); |
|
163 | emit dataProvidedProgress(acqIdentifier, 100); | |
155 | } |
|
164 | } | |
156 |
return |
|
165 | return type->createDataSeries(std::move(xAxisData), std::move(valuesData), | |
157 |
|
|
166 | Unit{QStringLiteral("t"), true}, Unit{}); | |
158 | } |
|
167 | } | |
159 |
|
168 | |||
160 | void CosinusProvider::requestDataLoading(QUuid acqIdentifier, |
|
169 | void CosinusProvider::requestDataLoading(QUuid acqIdentifier, |
General Comments 0
You need to be logged in to leave comments.
Login now