diff --git a/core/src/Variable/VariableModel.cpp b/core/src/Variable/VariableModel.cpp index 0093876..f18e7e6 100644 --- a/core/src/Variable/VariableModel.cpp +++ b/core/src/Variable/VariableModel.cpp @@ -158,10 +158,13 @@ QVariant VariableModel::data(const QModelIndex &index, int role) const /// that contains the time value to display auto dateTimeVariant = [variable](const auto &getValueFun) { if (auto dataSeries = variable->dataSeries()) { + dataSeries->lockRead(); auto it = getValueFun(*dataSeries); - return (it != dataSeries->cend()) - ? DateUtils::dateTime(it->x()).toString(DATETIME_FORMAT) - : QVariant{}; + auto resVariant = (it != dataSeries->cend()) + ? DateUtils::dateTime(it->x()).toString(DATETIME_FORMAT) + : QVariant{}; + dataSeries->unlock(); + return resVariant; } else { return QVariant{}; diff --git a/core/tests/meson.build b/core/tests/meson.build index 607c2e2..d9ec423 100644 --- a/core/tests/meson.build +++ b/core/tests/meson.build @@ -1,12 +1,12 @@ tests = [ - [['Data/TestDataSeries.cpp'],['test_data'],['DataSeries test']], - [['Data/TestOneDimArrayData.cpp'],['test_1d'],['One Dim Array test']], - [['Data/TestTwoDimArrayData.cpp'],['test_2d'],['Two Dim Array test']], - [['DataSource/TestDataSourceController.cpp'],['test_data_source'],['DataSourceController test']], - [['Variable/TestVariableCacheController.cpp'],['test_variable_cache'],['VariableCacheController test']], - [['Variable/TestVariable.cpp'],['test_variable'],['Variable test']] + [['Data/TestDataSeries.cpp'],'test_data','DataSeries test'], + [['Data/TestOneDimArrayData.cpp'],'test_1d','One Dim Array test'], + [['Data/TestTwoDimArrayData.cpp'],'test_2d','Two Dim Array test'], + [['DataSource/TestDataSourceController.cpp'],'test_data_source','DataSourceController test'], + [['Variable/TestVariableCacheController.cpp'],'test_variable_cache','VariableCacheController test'], + [['Variable/TestVariable.cpp'],'test_variable','Variable test'] ] foreach unit_test : tests @@ -15,6 +15,6 @@ foreach unit_test : tests link_with : sciqlop_core, include_directories : core_inc, dependencies : [qt5core, qt5widgets, qt5network,qt5test]) - test(unit_test[2], test_exe) + test(unit_test[2], test_exe, args: ['-teamcity', '-o', '@0@.teamcity.txt'.format(unit_test[1])]) endforeach diff --git a/gui/src/Visualization/VisualizationGraphHelper.cpp b/gui/src/Visualization/VisualizationGraphHelper.cpp index 64edc65..bdd5a70 100644 --- a/gui/src/Visualization/VisualizationGraphHelper.cpp +++ b/gui/src/Visualization/VisualizationGraphHelper.cpp @@ -38,7 +38,7 @@ QSharedPointer axisTicker(bool isTimeAxis) } } -/// Sets axes properties according to the properties of a data series +/// Sets axes properties according to the properties of a data series. Not thread safe template void setAxesProperties(const DataSeries &dataSeries, QCustomPlot &plot) noexcept { @@ -85,7 +85,9 @@ struct PlottablesCreatorcomponentCount(); + dataSeries.unlock(); auto colors = ColorUtils::colors(Qt::blue, Qt::red, componentCount); @@ -98,7 +100,9 @@ struct PlottablesCreator > dataContainers{}; @@ -145,6 +148,7 @@ struct PlottablesUpdaterdataSeries()) { - auto valuesBounds = dataSeries->valuesBounds(range.m_TStart, range.m_TEnd); + dataSeries->lockRead(); + auto valuesBounds + = dataSeries->valuesBounds(variable->range().m_TStart, variable->range().m_TEnd); auto end = dataSeries->cend(); if (valuesBounds.first != end && valuesBounds.second != end) { auto rangeValue = [](const auto &value) { return std::isnan(value) ? 0. : value; }; @@ -202,6 +204,7 @@ VisualizationGraphWidget *VisualizationZoneWidget::createGraph(std::shared_ptrsetYRange(SqpRange{minValue, maxValue}); } + dataSeries->unlock(); } return graphWidget; diff --git a/meson.build b/meson.build index 58abfea..5550f31 100644 --- a/meson.build +++ b/meson.build @@ -30,7 +30,6 @@ cppcheck = find_program('cppcheck', required : false) if cppcheck.found() run_target('cppcheck', command : [cppcheck, '--enable=all', - '--project=' + join_paths(meson.build_root(), 'compile_commands.json')], - build_by_default : true + '--project=' + join_paths(meson.build_root(), 'compile_commands.json')] ) endif diff --git a/plugins/amda/meson.build b/plugins/amda/meson.build index 4cdede5..489770a 100644 --- a/plugins/amda/meson.build +++ b/plugins/amda/meson.build @@ -45,9 +45,9 @@ sciqlop_amdaplugin = library('amdaplugin', tests = [ - [['tests/TestAmdaParser.cpp'],['test_amda_parser'],['AMDA parser test']], - [['tests/TestAmdaResultParser.cpp'],['test_amda_result_parser'],['AMDA result parser test']], - [['tests/TestAmdaAcquisition.cpp'],['test_amda_acquisition'],['AMDA Acquisition test']] + [['tests/TestAmdaParser.cpp'],'test_amda_parser','AMDA parser test'], + [['tests/TestAmdaResultParser.cpp'],'test_amda_result_parser','AMDA result parser test'], + [['tests/TestAmdaAcquisition.cpp'],'test_amda_acquisition','AMDA Acquisition test'] ] foreach unit_test : tests @@ -57,5 +57,5 @@ foreach unit_test : tests include_directories : [core_inc, amdaplugin_inc, gui_inc], cpp_args : ['-DAMDA_TESTS_RESOURCES_DIR="'+meson.current_source_dir()+'/tests-resources"'], dependencies : [qt5core, qt5widgets, qt5network,qt5test]) - test(unit_test[2], test_exe,timeout: 3 * 60) + test(unit_test[2], test_exe, args: ['-teamcity', '-o', '@0@.teamcity.txt'.format(unit_test[1])], timeout: 3 * 60) endforeach diff --git a/plugins/mockplugin/src/CosinusProvider.cpp b/plugins/mockplugin/src/CosinusProvider.cpp index cbf2073..4781d41 100644 --- a/plugins/mockplugin/src/CosinusProvider.cpp +++ b/plugins/mockplugin/src/CosinusProvider.cpp @@ -18,7 +18,7 @@ std::shared_ptr CosinusProvider::retrieveData(QUuid acqIdentifier, auto dataIndex = 0; // Gets the timerange from the parameters - double freq = 100.0; + double freq = 1.0; double start = std::ceil(dataRangeRequested.m_TStart * freq); // 100 htz double end = std::floor(dataRangeRequested.m_TEnd * freq); // 100 htz