Trim the dive to exclude surface time at beginning and end

We don't change any of the samples, we just don't plot (or consider for
dive time / mean calculations) the samples at the beginning or end of the
dive that are less than a certain threshold under water. Right now that's
an arbitrary 75cm which seems to Do The Right Thing(tm) for the dives I
tried this with - but I'm happy to look at other values if this causes
problems for people with dive computers I do not have access to.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2012-11-11 10:36:46 +01:00
parent 4c3dfee446
commit 7c09991876
3 changed files with 11 additions and 2 deletions

6
dive.c
View file

@ -449,10 +449,10 @@ struct dive *fixup_dive(struct dive *dive)
lastindex = index;
lastpressure = pressure;
if (lastdepth)
if (lastdepth > SURFACE_THRESHOLD)
end = time;
if (depth) {
if (depth > SURFACE_THRESHOLD) {
if (start < 0)
start = lasttime;
if (depth > maxdepth)
@ -479,6 +479,8 @@ struct dive *fixup_dive(struct dive *dive)
lastdepth = depth;
lasttime = time;
}
dive->start = start;
dive->end = end;
/* if all the samples for a cylinder have pressure data that
* is basically equidistant throw out the sample cylinder pressure
* information but make sure we still have a valid start and end