@@ -52,7 +52,7 QUuid VariableAcquisitionWorker::pushVariableRequest(QUuid varRequestId, QUuid v | |||
|
52 | 52 | DataProviderParameters parameters, |
|
53 | 53 | std::shared_ptr<IDataProvider> provider) |
|
54 | 54 | { |
|
55 |
qC |
|
|
55 | qCDebug(LOG_VariableAcquisitionWorker()) | |
|
56 | 56 | << tr("TORM VariableAcquisitionWorker::pushVariableRequest ") << cacheRangeRequested; |
|
57 | 57 | auto varRequestIdCanceled = QUuid(); |
|
58 | 58 | |
@@ -186,7 +186,7 void VariableAcquisitionWorker::onVariableDataAcquired(QUuid acqIdentifier, | |||
|
186 | 186 | |
|
187 | 187 | void VariableAcquisitionWorker::onExecuteRequest(QUuid acqIdentifier) |
|
188 | 188 | { |
|
189 |
qC |
|
|
189 | qCDebug(LOG_VariableAcquisitionWorker()) << tr("onExecuteRequest") << QThread::currentThread(); | |
|
190 | 190 | impl->lockRead(); |
|
191 | 191 | auto it = impl->m_AcqIdentifierToAcqRequestMap.find(acqIdentifier); |
|
192 | 192 | if (it != impl->m_AcqIdentifierToAcqRequestMap.cend()) { |
@@ -1,6 +1,5 | |||
|
1 | 1 | #include <Variable/Variable.h> |
|
2 | 2 | #include <Variable/VariableAcquisitionWorker.h> |
|
3 | #include <Variable/VariableCacheController.h> | |
|
4 | 3 | #include <Variable/VariableCacheStrategy.h> |
|
5 | 4 | #include <Variable/VariableController.h> |
|
6 | 5 | #include <Variable/VariableModel.h> |
@@ -80,7 +79,6 struct VariableController::VariableControllerPrivate { | |||
|
80 | 79 | : m_WorkingMutex{}, |
|
81 | 80 | m_VariableModel{new VariableModel{parent}}, |
|
82 | 81 | m_VariableSelectionModel{new QItemSelectionModel{m_VariableModel, parent}}, |
|
83 | m_VariableCacheController{std::make_unique<VariableCacheController>()}, | |
|
84 | 82 | m_VariableCacheStrategy{std::make_unique<VariableCacheStrategy>()}, |
|
85 | 83 | m_VariableAcquisitionWorker{std::make_unique<VariableAcquisitionWorker>()}, |
|
86 | 84 | q{parent} |
@@ -123,7 +121,6 struct VariableController::VariableControllerPrivate { | |||
|
123 | 121 | |
|
124 | 122 | |
|
125 | 123 | TimeController *m_TimeController{nullptr}; |
|
126 | std::unique_ptr<VariableCacheController> m_VariableCacheController; | |
|
127 | 124 | std::unique_ptr<VariableCacheStrategy> m_VariableCacheStrategy; |
|
128 | 125 | std::unique_ptr<VariableAcquisitionWorker> m_VariableAcquisitionWorker; |
|
129 | 126 | QThread m_VariableAcquisitionWorkerThread; |
@@ -211,8 +208,6 void VariableController::deleteVariable(std::shared_ptr<Variable> variable) noex | |||
|
211 | 208 | << tr("Number of providers deleted for variable %1: %2") |
|
212 | 209 | .arg(variable->name(), QString::number(nbProvidersDeleted)); |
|
213 | 210 | |
|
214 | // Clears cache | |
|
215 | impl->m_VariableCacheController->clear(variable); | |
|
216 | 211 | |
|
217 | 212 | // Deletes from model |
|
218 | 213 | impl->m_VariableModel->deleteVariable(variable); |
@@ -369,16 +364,16 void VariableController::onRequestDataLoading(QVector<std::shared_ptr<Variable> | |||
|
369 | 364 | { |
|
370 | 365 | // NOTE: oldRange isn't really necessary since oldRange == variable->range(). |
|
371 | 366 | |
|
372 | qCDebug(LOG_VariableController()) << "VariableController::onRequestDataLoading" | |
|
373 | << QThread::currentThread()->objectName(); | |
|
374 | 367 | // we want to load data of the variable for the dateTime. |
|
375 | 368 | // First we check if the cache contains some of them. |
|
376 | 369 | // For the other, we ask the provider to give them. |
|
377 | 370 | |
|
378 | 371 | auto varRequestId = QUuid::createUuid(); |
|
372 | qCInfo(LOG_VariableController()) << "VariableController::onRequestDataLoading" | |
|
373 | << QThread::currentThread()->objectName() << varRequestId; | |
|
379 | 374 | |
|
380 | 375 | for (const auto &var : variables) { |
|
381 |
qC |
|
|
376 | qCDebug(LOG_VariableController()) << "processRequest for" << var->name() << varRequestId; | |
|
382 | 377 | impl->processRequest(var, range, varRequestId); |
|
383 | 378 | } |
|
384 | 379 | |
@@ -386,7 +381,8 void VariableController::onRequestDataLoading(QVector<std::shared_ptr<Variable> | |||
|
386 | 381 | // Get the group ids |
|
387 | 382 | qCDebug(LOG_VariableController()) |
|
388 | 383 | << "TORM VariableController::onRequestDataLoading for synchro var ENABLE"; |
|
389 |
auto groupIds = std::set<QUuid> |
|
|
384 | auto groupIds = std::set<QUuid>{}; | |
|
385 | auto groupIdToOldRangeMap = std::map<QUuid, SqpRange>{}; | |
|
390 | 386 | for (const auto &var : variables) { |
|
391 | 387 | auto varToVarIdIt = impl->m_VariableToIdentifierMap.find(var); |
|
392 | 388 | if (varToVarIdIt != impl->m_VariableToIdentifierMap.cend()) { |
@@ -394,6 +390,7 void VariableController::onRequestDataLoading(QVector<std::shared_ptr<Variable> | |||
|
394 | 390 | auto varIdToGroupIdIt = impl->m_VariableIdGroupIdMap.find(vId); |
|
395 | 391 | if (varIdToGroupIdIt != impl->m_VariableIdGroupIdMap.cend()) { |
|
396 | 392 | auto gId = varIdToGroupIdIt->second; |
|
393 | groupIdToOldRangeMap.insert(std::make_pair(gId, var->range())); | |
|
397 | 394 | if (groupIds.find(gId) == groupIds.cend()) { |
|
398 | 395 | qCDebug(LOG_VariableController()) << "Synchro detect group " << gId; |
|
399 | 396 | groupIds.insert(gId); |
@@ -415,8 +412,9 void VariableController::onRequestDataLoading(QVector<std::shared_ptr<Variable> | |||
|
415 | 412 | if (var != nullptr) { |
|
416 | 413 | qCDebug(LOG_VariableController()) << "processRequest synchro for" |
|
417 | 414 | << var->name(); |
|
418 | auto vSyncRangeRequested | |
|
419 |
|
|
|
415 | auto vSyncRangeRequested = computeSynchroRangeRequested( | |
|
416 | var->range(), range, groupIdToOldRangeMap.at(gId)); | |
|
417 | qCDebug(LOG_VariableController()) << "synchro RR" << vSyncRangeRequested; | |
|
420 | 418 | impl->processRequest(var, vSyncRangeRequested, varRequestId); |
|
421 | 419 | } |
|
422 | 420 | else { |
@@ -481,7 +479,6 void VariableController::VariableControllerPrivate::processRequest(std::shared_p | |||
|
481 | 479 | auto varRequest = VariableRequest{}; |
|
482 | 480 | auto varId = m_VariableToIdentifierMap.at(var); |
|
483 | 481 | |
|
484 | ||
|
485 | 482 | auto varStrategyRangesRequested |
|
486 | 483 | = m_VariableCacheStrategy->computeStrategyRanges(var->range(), rangeRequested); |
|
487 | 484 | auto notInCacheRangeList = var->provideNotInCacheRangeList(varStrategyRangesRequested.second); |
@@ -490,6 +487,11 void VariableController::VariableControllerPrivate::processRequest(std::shared_p | |||
|
490 | 487 | if (!notInCacheRangeList.empty()) { |
|
491 | 488 | varRequest.m_RangeRequested = varStrategyRangesRequested.first; |
|
492 | 489 | varRequest.m_CacheRangeRequested = varStrategyRangesRequested.second; |
|
490 | qCDebug(LOG_VariableAcquisitionWorker()) << tr("TORM processRequest RR ") << rangeRequested; | |
|
491 | qCDebug(LOG_VariableAcquisitionWorker()) << tr("TORM processRequest R ") | |
|
492 | << varStrategyRangesRequested.first; | |
|
493 | qCDebug(LOG_VariableAcquisitionWorker()) << tr("TORM processRequest CR ") | |
|
494 | << varStrategyRangesRequested.second; | |
|
493 | 495 | // store VarRequest |
|
494 | 496 | storeVariableRequest(varId, varRequestId, varRequest); |
|
495 | 497 | |
@@ -502,6 +504,8 void VariableController::VariableControllerPrivate::processRequest(std::shared_p | |||
|
502 | 504 | varProvider); |
|
503 | 505 | |
|
504 | 506 | if (!varRequestIdCanceled.isNull()) { |
|
507 | qCInfo(LOG_VariableAcquisitionWorker()) << tr("varRequestIdCanceled: ") | |
|
508 | << varRequestIdCanceled; | |
|
505 | 509 | cancelVariableRequest(varRequestIdCanceled); |
|
506 | 510 | } |
|
507 | 511 | } |
@@ -682,13 +686,13 void VariableController::VariableControllerPrivate::updateVariableRequest(QUuid | |||
|
682 | 686 | auto &varRequest = varIdToVarRequestMapIt->second; |
|
683 | 687 | var->setRange(varRequest.m_RangeRequested); |
|
684 | 688 | var->setCacheRange(varRequest.m_CacheRangeRequested); |
|
685 |
qC |
|
|
686 | << varRequest.m_RangeRequested; | |
|
687 |
qC |
|
|
688 | << varRequest.m_CacheRangeRequested; | |
|
689 | qCDebug(LOG_VariableController()) << tr("1: onDataProvided") | |
|
690 | << varRequest.m_RangeRequested; | |
|
691 | qCDebug(LOG_VariableController()) << tr("2: onDataProvided") | |
|
692 | << varRequest.m_CacheRangeRequested; | |
|
689 | 693 | var->mergeDataSeries(varRequest.m_DataSeries); |
|
690 |
qC |
|
|
691 | << varRequest.m_DataSeries->range(); | |
|
694 | qCDebug(LOG_VariableController()) << tr("3: onDataProvided") | |
|
695 | << varRequest.m_DataSeries->range(); | |
|
692 | 696 | qCDebug(LOG_VariableController()) << tr("4: onDataProvided"); |
|
693 | 697 | emit var->updated(); |
|
694 | 698 | } |
@@ -100,49 +100,49 VisualizationGraphWidget *VisualizationZoneWidget::createGraph(std::shared_ptr<V | |||
|
100 | 100 | auto deltaRight = oldGraphRange.m_TEnd - graphRange.m_TEnd; |
|
101 | 101 | graphChildRange.m_TStart += deltaLeft; |
|
102 | 102 | graphChildRange.m_TEnd -= deltaRight; |
|
103 |
qC |
|
|
104 |
qC |
|
|
105 |
|
|
|
106 |
qC |
|
|
107 |
|
|
|
108 |
qC |
|
|
103 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: ZoomIn"); | |
|
104 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: deltaLeft") | |
|
105 | << deltaLeft; | |
|
106 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: deltaRight") | |
|
107 | << deltaRight; | |
|
108 | qCDebug(LOG_VisualizationZoneWidget()) | |
|
109 | 109 | << tr("TORM: dt") << graphRange.m_TEnd - graphRange.m_TStart; |
|
110 | 110 | |
|
111 | 111 | break; |
|
112 | 112 | } |
|
113 | 113 | |
|
114 | 114 | case AcquisitionZoomType::ZoomOut: { |
|
115 |
qC |
|
|
115 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: ZoomOut"); | |
|
116 | 116 | auto deltaLeft = oldGraphRange.m_TStart - graphRange.m_TStart; |
|
117 | 117 | auto deltaRight = graphRange.m_TEnd - oldGraphRange.m_TEnd; |
|
118 |
qC |
|
|
119 |
|
|
|
120 |
qC |
|
|
121 |
|
|
|
122 |
qC |
|
|
118 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: deltaLeft") | |
|
119 | << deltaLeft; | |
|
120 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: deltaRight") | |
|
121 | << deltaRight; | |
|
122 | qCDebug(LOG_VisualizationZoneWidget()) | |
|
123 | 123 | << tr("TORM: dt") << graphRange.m_TEnd - graphRange.m_TStart; |
|
124 | 124 | graphChildRange.m_TStart -= deltaLeft; |
|
125 | 125 | graphChildRange.m_TEnd += deltaRight; |
|
126 | 126 | break; |
|
127 | 127 | } |
|
128 | 128 | case AcquisitionZoomType::PanRight: { |
|
129 |
qC |
|
|
129 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: PanRight"); | |
|
130 | 130 | auto deltaRight = graphRange.m_TEnd - oldGraphRange.m_TEnd; |
|
131 | 131 | graphChildRange.m_TStart += deltaRight; |
|
132 | 132 | graphChildRange.m_TEnd += deltaRight; |
|
133 |
qC |
|
|
133 | qCDebug(LOG_VisualizationZoneWidget()) | |
|
134 | 134 | << tr("TORM: dt") << graphRange.m_TEnd - graphRange.m_TStart; |
|
135 | 135 | break; |
|
136 | 136 | } |
|
137 | 137 | case AcquisitionZoomType::PanLeft: { |
|
138 |
qC |
|
|
138 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: PanLeft"); | |
|
139 | 139 | auto deltaLeft = oldGraphRange.m_TStart - graphRange.m_TStart; |
|
140 | 140 | graphChildRange.m_TStart -= deltaLeft; |
|
141 | 141 | graphChildRange.m_TEnd -= deltaLeft; |
|
142 | 142 | break; |
|
143 | 143 | } |
|
144 | 144 | case AcquisitionZoomType::Unknown: { |
|
145 |
qC |
|
|
145 | qCDebug(LOG_VisualizationZoneWidget()) | |
|
146 | 146 | << tr("Impossible to synchronize: zoom type unknown"); |
|
147 | 147 | break; |
|
148 | 148 | } |
@@ -153,11 +153,11 VisualizationGraphWidget *VisualizationZoneWidget::createGraph(std::shared_ptr<V | |||
|
153 | 153 | break; |
|
154 | 154 | } |
|
155 | 155 | graphChild->enableAcquisition(false); |
|
156 |
qC |
|
|
157 |
|
|
|
158 |
qC |
|
|
159 |
|
|
|
160 |
qC |
|
|
156 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: Range before: ") | |
|
157 | << graphChild->graphRange(); | |
|
158 | qCDebug(LOG_VisualizationZoneWidget()) << tr("TORM: Range after : ") | |
|
159 | << graphChildRange; | |
|
160 | qCDebug(LOG_VisualizationZoneWidget()) | |
|
161 | 161 | << tr("TORM: child dt") << graphChildRange.m_TEnd - graphChildRange.m_TStart; |
|
162 | 162 | graphChild->setGraphRange(graphChildRange); |
|
163 | 163 | graphChild->enableAcquisition(true); |
@@ -130,8 +130,8 void TestAmdaAcquisition::testAcquisition() | |||
|
130 | 130 | QTimer::singleShot(timeToWaitMs, &loop, &QEventLoop::quit); |
|
131 | 131 | loop.exec(); |
|
132 | 132 | |
|
133 |
q |
|
|
134 |
q |
|
|
133 | qInfo() << count << "RANGE " << var->range(); | |
|
134 | qInfo() << count << "CACHERANGE" << var->cacheRange(); | |
|
135 | 135 | |
|
136 | 136 | QCOMPARE(var->range().m_TStart, nextSqpR.m_TStart); |
|
137 | 137 | QCOMPARE(var->range().m_TEnd, nextSqpR.m_TEnd); |
@@ -144,7 +144,7 void TestAmdaAcquisition::testAcquisition() | |||
|
144 | 144 | // 2 : pan (jump) left for one hour |
|
145 | 145 | auto nextVarRS = QDateTime{QDate{2012, 01, 02}, QTime{2, 1, 0, 0}}; |
|
146 | 146 | auto nextVarRE = QDateTime{QDate{2012, 01, 02}, QTime{2, 2, 0, 0}}; |
|
147 |
|
|
|
147 | requestDataLoading(nextVarRS, nextVarRE); | |
|
148 | 148 | |
|
149 | 149 | |
|
150 | 150 | // 3 : pan (jump) right for one hour |
General Comments 0
You need to be logged in to leave comments.
Login now