Calculate minimum and maximum heartrate

And setup the axis accordingly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-02-23 14:32:25 -08:00
parent 9712999e66
commit 41abab7253
3 changed files with 19 additions and 4 deletions

View file

@ -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;

View file

@ -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;

View file

@ -345,10 +345,14 @@ void ProfileWidget2::plotDives(QList<dive*> 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;