From b14a9ce04d5bb8e6f3eac1471feec82c4f3029ad Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Sat, 8 Oct 2022 18:13:16 +0200 Subject: [PATCH] [Graph] Fixed timestamp reset --- .vscode/settings.json | 14 +++++++++++++- src/shared/Modules/Graph/Graph.cpp | 22 +++++++++------------- src/shared/Modules/Graph/Graph.h | 2 ++ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8d85298b..a68dd339 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -152,7 +152,19 @@ "qconemesh": "cpp", "qgeometryrenderer": "cpp", "qrenderaspect": "cpp", - "qcuboidmesh": "cpp" + "qcuboidmesh": "cpp", + "qtcore": "cpp", + "qtdatavisualization": "cpp", + "qtgui": "cpp", + "qtmacextras": "cpp", + "qtnetwork": "cpp", + "qtquickcontrols2": "cpp", + "qtquicktest": "cpp", + "qtwidgets": "cpp", + "qtnetworkauth": "cpp", + "qtscript": "cpp", + "qtsvg": "cpp", + "qtvirtualkeyboard": "cpp" }, "editor.defaultFormatter": "ms-vscode.cpptools", "[xml]": { diff --git a/src/shared/Modules/Graph/Graph.cpp b/src/shared/Modules/Graph/Graph.cpp index 14d6992c..c59f15e7 100644 --- a/src/shared/Modules/Graph/Graph.cpp +++ b/src/shared/Modules/Graph/Graph.cpp @@ -138,13 +138,15 @@ void Graph::onFilterAdded(const Filter& filter) if (stopped && !lines.contains(filter)) return; + if (!message.getFields().contains("timestamp")) + return; + for (auto field : filter.getFields()) { if (field == "timestamp") continue; - auto& line = lines[filter].first[field]; - + auto& line = lines[filter].first[field]; QVector<double>& bufferX = line.bufferX; QVector<double>& bufferY = line.bufferY; @@ -153,18 +155,12 @@ void Graph::onFilterAdded(const Filter& filter) double y = message.getField(field).getDouble(); // Check if the timestamp resets - if (bufferX.last() < x) - { - bufferX.append(x); - bufferY.append(y); - } - else - { - bufferX.clear(); - bufferY.clear(); + if (lastTimestamp - 1 > x) + onClearClicked(); - line.graph->data()->clear(); - } + lastTimestamp = x; + bufferX.append(x); + bufferY.append(y); } // Flag the data as updated diff --git a/src/shared/Modules/Graph/Graph.h b/src/shared/Modules/Graph/Graph.h index 4b0c551d..820813e9 100644 --- a/src/shared/Modules/Graph/Graph.h +++ b/src/shared/Modules/Graph/Graph.h @@ -51,6 +51,8 @@ private: QTimer updaterTimer; int updatePeriod = 1000 / 5; // 5fps + double lastTimestamp = 0; + bool stopped = false; bool following = true; }; -- GitLab