mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add a meandepth to the dive structure
This is currently only used in one place (in statistics.c), but it certainly is consistent with the other recent changes to avoid using only the first divecomputer when trying to make statements about a dive. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
0755cc522b
commit
c7efcb23a9
3 changed files with 18 additions and 2 deletions
16
dive.c
16
dive.c
|
@ -454,6 +454,21 @@ static void fixup_water_salinity(struct dive *dive)
|
|||
dive->salinity = (sum + nr/2)/nr;
|
||||
}
|
||||
|
||||
static void fixup_meandepth(struct dive *dive)
|
||||
{
|
||||
struct divecomputer *dc;
|
||||
int sum = 0, nr = 0;
|
||||
|
||||
for_each_dc(dive, dc) {
|
||||
if (dc->meandepth.mm) {
|
||||
sum += dc->meandepth.mm;
|
||||
nr++;
|
||||
}
|
||||
}
|
||||
if (nr)
|
||||
dive->meandepth.mm = (sum + nr / 2) / nr;
|
||||
}
|
||||
|
||||
/*
|
||||
* events are stored as a linked list, so the concept of
|
||||
* "consecutive, identical events" is somewhat hard to
|
||||
|
@ -645,6 +660,7 @@ struct dive *fixup_dive(struct dive *dive)
|
|||
|
||||
fixup_water_salinity(dive);
|
||||
fixup_surface_pressure(dive);
|
||||
fixup_meandepth(dive);
|
||||
|
||||
for_each_dc(dive, dc)
|
||||
fixup_dive_dc(dive, dc);
|
||||
|
|
2
dive.h
2
dive.h
|
@ -321,7 +321,7 @@ struct dive {
|
|||
|
||||
/* Calculated based on dive computer data */
|
||||
temperature_t mintemp, maxtemp;
|
||||
depth_t maxdepth;
|
||||
depth_t maxdepth, meandepth;
|
||||
pressure_t surface_pressure;
|
||||
int salinity; // kg per 10000 l
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@ static void process_dive(struct dive *dp, stats_t *stats)
|
|||
if (!duration)
|
||||
return;
|
||||
stats->avg_depth.mm = (1.0 * old_tt * stats->avg_depth.mm +
|
||||
duration * dp->dc.meandepth.mm) / stats->total_time.seconds;
|
||||
duration * dp->meandepth.mm) / stats->total_time.seconds;
|
||||
if (dp->sac > 2800) { /* less than .1 cuft/min (2800ml/min) is bogus */
|
||||
sac_time = stats->total_sac_time + duration;
|
||||
stats->avg_sac.mliter = (1.0 * stats->total_sac_time * stats->avg_sac.mliter +
|
||||
|
|
Loading…
Add table
Reference in a new issue