[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