From 41abab72533a31affe7746568e3d6fc3d8f94981 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 23 Feb 2014 14:32:25 -0800 Subject: Calculate minimum and maximum heartrate And setup the axis accordingly. Signed-off-by: Dirk Hohndel --- display.h | 1 + profile.c | 10 ++++++++++ qt-ui/profile/profilewidget2.cpp | 12 ++++++++---- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/display.h b/display.h index 5068027ce..30fd2067a 100644 --- a/display.h +++ b/display.h @@ -19,6 +19,7 @@ struct plot_info { int maxtime; int meandepth, maxdepth; int minpressure, maxpressure; + int minhr, maxhr; int mintemp, maxtemp; double endtempcoord; double maxpp; diff --git a/profile.c b/profile.c index 3b0018a4d..5cb9564dd 100644 --- a/profile.c +++ b/profile.c @@ -736,6 +736,7 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer int maxdepth = dive->maxdepth.mm; int maxtime = 0; int maxpressure = 0, minpressure = INT_MAX; + int maxhr = 0, minhr = INT_MAX; int mintemp = dive->mintemp.mkelvin; int maxtemp = dive->maxtemp.mkelvin; int cyl; @@ -757,6 +758,7 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer int depth = s->depth.mm; int pressure = s->cylinderpressure.mbar; int temperature = s->temperature.mkelvin; + int heartbeat = s->heartbeat; if (!mintemp && temperature < mintemp) mintemp = temperature; @@ -767,6 +769,10 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer minpressure = pressure; if (pressure > maxpressure) maxpressure = pressure; + if (heartbeat > maxhr) + maxhr = heartbeat; + if (heartbeat < minhr) + minhr = heartbeat; if (depth > maxdepth) maxdepth = s->depth.mm; @@ -780,12 +786,16 @@ struct plot_info calculate_max_limits_new(struct dive *dive, struct divecomputer if (minpressure > maxpressure) minpressure = 0; + if (minhr > maxhr) + minhr = 0; memset(&pi, 0, sizeof(pi)); pi.maxdepth = maxdepth; pi.maxtime = maxtime; pi.maxpressure = maxpressure; pi.minpressure = minpressure; + pi.minhr = minhr; + pi.maxhr = maxhr; pi.mintemp = mintemp; pi.maxtemp = maxtemp; return pi; diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 9152f1c76..a8f1e0e33 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -345,10 +345,14 @@ void ProfileWidget2::plotDives(QList dives) temperatureAxis->setMinimum(pInfo.mintemp); temperatureAxis->setMaximum(pInfo.maxtemp); - heartBeatAxis->setMinimum(20); // FIXME: find minimum - heartBeatAxis->setMaximum(200); // FIXME: find maximum - heartBeatAxis->updateTicks(); // this shows the ticks - + if (pInfo.maxhr) { + heartBeatAxis->setMinimum(pInfo.minhr); + heartBeatAxis->setMaximum(pInfo.maxhr); + heartBeatAxis->updateTicks(); // this shows the ticks + heartBeatAxis->setVisible(true); + } else { + heartBeatAxis->setVisible(false); + } timeAxis->setMaximum(maxtime); int i, incr; -- cgit v1.2.3-70-g09d2