[PATCH 3/3] Reinstating SURFACE_THRESHOLD test in pressure_time function
Rodrigo Severo
rodrigo at fabricadeideias.com
Wed Jan 1 16:03:23 UTC 2014
Ok Dirk.
Please let me know if you want anything changed at the patchs I sent you.
Rodrigo
On Wed, Jan 1, 2014 at 3:46 PM, Dirk Hohndel <dirk at hohndel.org> wrote:
>
> I need to spend more time staring at the code and figuring out what
> I /really/ want it to do. I'll leave this until after 4.0.1.
>
> /D
>
> On Wed, 2014-01-01 at 10:35 -0200, Rodrigo Severo wrote:
> > The small straight parts at the end of tank pressure lines are more of a
> aesthetic issue, not causing real harm so it is no reason to remove the
> SURFACE_THRESHOLD test from pressure_time function only because of this.
> >
> > Also improved interpolate data debuging, rearranged
> get_pr_interpolate_data and removed an unused variable from
> get_pr_interpolate_data. No real change here, just trying to make the code
> clearer.
> >
> > Signed-off-by: Rodrigo Severo <rodrigo at fabricadeideias.com>
> > ---
> > profile.c | 32 +++++++++++++++++++-------------
> > 1 file changed, 19 insertions(+), 13 deletions(-)
> >
> > diff --git a/profile.c b/profile.c
> > index 6178a31..fdaac56 100644
> > --- a/profile.c
> > +++ b/profile.c
> > @@ -426,9 +426,9 @@ struct pr_interpolate_struct {
> > };
> >
> > #ifdef DEBUG_PR_INTERPOLATE
> > -static void dump_pr_interpolate(pr_interpolate_t interpolate_pr)
> > +static void dump_pr_interpolate(int i, pr_interpolate_t interpolate_pr)
> > {
> > - printf("INTERPOLATE: start %d - end %d - pt %d - acc_pt %d\n",
> > + printf("Interpolate for entry %d: start %d - end %d - pt %d -
> acc_pt %d\n", i,
> > interpolate_pr.start, interpolate_pr.end,
> interpolate_pr.pressure_time, interpolate_pr.acc_pressure_time);
> > }
> > #endif
> > @@ -516,6 +516,9 @@ static inline int pressure_time(struct dive *dive,
> struct divecomputer *dc, stru
> > int time = b->sec - a->sec;
> > int depth = (a->depth + b->depth)/2;
> >
> > + if (depth <= SURFACE_THRESHOLD)
> > + return 0;
> > +
> > return depth_to_mbar(depth, dive) * time;
> > }
> >
> > @@ -523,13 +526,12 @@ static struct pr_interpolate_struct
> get_pr_interpolate_data(pr_track_t *segment,
> > {
> > struct pr_interpolate_struct interpolate;
> > int i;
> > - struct plot_data *entry, *cur_entry;
> > + struct plot_data *entry;
> >
> > interpolate.start = segment->start;
> > interpolate.end = segment->end;
> > interpolate.acc_pressure_time = 0;
> > interpolate.pressure_time = 0;
> > - cur_entry = pi->entry + cur;
> >
> > for (i = 0; i < pi->nr; i++) {
> > entry = pi->entry + i;
> > @@ -544,7 +546,9 @@ static struct pr_interpolate_struct
> get_pr_interpolate_data(pr_track_t *segment,
> > interpolate.pressure_time = 0;
> > if (SENSOR_PRESSURE(entry))
> > interpolate.start = SENSOR_PRESSURE(entry);
> > - } else if (i < cur) {
> > + continue;
> > + }
> > + if (i < cur) {
> > if (SENSOR_PRESSURE(entry)) {
> > interpolate.start = SENSOR_PRESSURE(entry);
> > interpolate.acc_pressure_time = 0;
> > @@ -553,15 +557,17 @@ static struct pr_interpolate_struct
> get_pr_interpolate_data(pr_track_t *segment,
> > interpolate.acc_pressure_time +=
> entry->pressure_time;
> > interpolate.pressure_time +=
> entry->pressure_time;
> > }
> > - } else if (i == cur) {
> > + continue;
> > + }
> > + if (i == cur) {
> > interpolate.acc_pressure_time +=
> entry->pressure_time;
> > interpolate.pressure_time += entry->pressure_time;
> > - } else {
> > - interpolate.pressure_time += entry->pressure_time;
> > - if (SENSOR_PRESSURE(entry)) {
> > - interpolate.end = SENSOR_PRESSURE(entry);
> > - break;
> > - }
> > + continue;
> > + }
> > + interpolate.pressure_time += entry->pressure_time;
> > + if (SENSOR_PRESSURE(entry)) {
> > + interpolate.end = SENSOR_PRESSURE(entry);
> > + break;
> > }
> > }
> > return interpolate;
> > @@ -612,7 +618,7 @@ static void fill_missing_tank_pressures(struct dive
> *dive, struct plot_info *pi,
> >
> > interpolate = get_pr_interpolate_data(segment, pi, i);
> > #ifdef DEBUG_PR_INTERPOLATE
> > - dump_pr_interpolate(interpolate);
> > + dump_pr_interpolate(i, interpolate);
> > #endif
> > /* Overall pressure change over total pressure-time for
> this segment*/
> > magic = (interpolate.end - interpolate.start) / (double)
> interpolate.pressure_time;
>
>
>
--
*Rodrigo Severo* | DIRETOR DE TECNOLOGIA
Tel. *+55 61 3030-1515*
Siga a Fábrica no twitter:*@empautaclipping*
fabricadeideias.com <http://www.fabricadeideias.com/>
12 ANOS DE TECNOLOGIA E COMUNICAÇÃO
NUMA COMBINAÇÃO PERFEITA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20140101/a8bc1322/attachment.html>
More information about the subsurface
mailing list