[PATCH] Correct bug: setpoint handling of Poseidon CCR dive logs
dirk at hohndel.org
Wed Oct 29 12:22:09 PDT 2014
On Wed, Oct 29, 2014 at 09:05:10PM +0200, Willem Ferguson wrote:
> On 29/10/2014 20:36, Dirk Hohndel wrote:
> >On Wed, Oct 29, 2014 at 07:57:38PM +0200, Willem Ferguson wrote:
> >>@@ -1178,6 +1178,10 @@ static void fixup_dive_dc(struct dive *dive, struct divecomputer *dc)
> >> mintemp = temp;
> >> }
> >>+ // If there are consecutive identical O2 setpoint readings, throw away the redundant ones.
> >>+ if (sample->setpoint.mbar == lastsetpoint)
> >>+ sample->setpoint.mbar = 0;
> >I believe we came to the conclusion that this was the wrong thing to do
> >A setpoint of 0 indicates an OC dive...
> >Can you explain why you need this?
> An excellent question. In dive.c the criterion was whether a po2 partial
> pressure is specified or not. If not, an OC dive is assumed. For instance
> see function fill_pressures() in dive.c. Clearly there is some care required
> here when zeroing out all the duplicate values. The setpoint values are
> highly repetitive and, if not zeroed out, will really create a lot of
> additional space requirement.
Nonono. Of course they get zeroed out when WRITING them to XML. But they
should NOT need to be zeroed out in memory. I will spare you the obvious
> On the other hand the pressures.o2 values are
> not zeroed out since it is calculated much later in the process, after the
> plotdata structures have been initialised. On the other hand, the raw sensor
> values (from which pressures.o2 is calculated) are zeroed out. Hope this
> argument sounds half-logical??
No, it completely loses me, actually.
I think in memory we should NOT set anything to 0. When the setpoint
switches to 0 that means we are bailing out to OC...
More information about the subsurface