Ascent rate and other stored information

Jef Driesen jefdriesen at telenet.be
Thu Apr 19 14:51:58 UTC 2012


On 2012-04-17 17:07, Björn Spruck wrote:
> Am 03.04.2012 10:04, schrieb Jef Driesen:
>> Just to give an example, the ascent rate could be stored as a 
>> numeric
>> value (e.g. in m/s), an index into an array with ranges (e.g. 0-5,
>> 5-10, 10-15, 15+), etc. Because every model can have its own set of
>> ranges, you need all of them. And that's just for the ascent rate. 
>> Is
>> this really worth the trouble? I would say no, especially because
>> ascent rate can be calculated from the profile data. The results may
>> deviate slightly from the values reported by the dive computer, but 
>> is
>> that really a problem?
>>
> Actually, yes, because this is an "instant rate" based on the 
> sampling
> rate of the DC, while the one recalculated is from the stored 20s
> intervalls.

Are you sure about that? There is only one ascent rate value recorded 
for the entire sample interval. The dive computer can indeed sample more 
frequently, but in the end it will only record a single value. That 
value could be the minimum, maximum or average value within the sample 
interval, but regardless of how it's obtained, it will always be an 
approximation. Instant and interval don't really mix well.

I doubt the differences between the recorded and calculated values will 
be very high anyway. Especially with the relative short sample intervals 
that are used nowadays. And if the dive computer uses ranges to express 
the ascent rate, there is already a huge amount of rounding going on, 
which is probably greater than the differences due to using a calculated 
value.

Note that another advantage of calculating the ascent rate from the 
depth profile is that it will always yield a consistent result, 
independent of the type of dive computer you used. And last but not 
least you'll also have an ascent rate for dive computers that don't 
record that type of information.

> But it is a very nice example, because in this case it is really easy 
> to
> store the information in a way to satisfy most (all?) models:
> Store a numerical lower and upper bound, the values (corresponding to
> the integer values) can be found in the dive computers manual.
> I see this as an opportunity to think now (based on the knowledge of 
> the
> data of current DCs) to make decisions on the data formats.
>
> At least here it would be really bad to relay the work to the 
> front-end.
>
> The back-end should give values to the front-end in a way that the
> front-end does not need to know anything on the DC model to display 
> (or
> interpret) them correctly.
>
> Another example is the "deco" flag behaviour: (I mentioned this 
> before)
> Some computers store a start and end deco flag. some flag all samples
> where deco is "on".
> Here I see the task of teh backend to "translate" that to some 
> uniform
> behaviour. (either start/stop for all (prefered), or continous
> flagging). Thus having a uniform behaviour from the front-end view.

Don't get me wrong, I absolutely do want to move the interpretation as 
much as possible into the backends. That's exactly the reason why I want 
to get rid of the sample events as they exist today. They were never 
really carefully designed, with an inextensible format as the result. 
Removing them from the api right now and passing them as raw binary data 
instead, will allow us to re-introduce them later on, once we have 
figured out a more appropriate format.

But it's not a trivial task due to the many different formats and 
feature sets. And certainly don't forget it's also a very time consuming 
process. Adding a single new field means reverse engineering that piece 
of info for all 20+ backends and even more different models.

>> That's why I want to concentrate on the essential pieces of
>> information and make sure those are very well supported. Squeezing 
>> the
>> last bits of info out of the data is a huge amount of work, while 
>> the
>> majority of the applications won't need it.
>
> Essentials are different for different people ;-)

Of course! But I think you'll agree some are more essential than 
others. Things like date/time, divetime, maxdepth, gas mixes (e.g. the 
stuff you would write down in a paper logbook) are likely more essential 
for the majority of people than let's say ascent rate. I'm not claiming 
ascent rate is a useless piece of information, but only that it has a 
lower priority.

Also my resources (time) are limited, so I rather prefer to satisfy the 
majority of people with a more limited but well supported set of 
information, than to spend huge amounts of time on features that are 
little used.

Maybe a good start would be to make a list of what kind of information 
we consider essential and would like to see supported? Once we agree on 
what we want (or not), we can start discussing the corresponding data 
formats.

> PS: maybe this discussion should continue on the list?

Indeed.

Jef





More information about the Devel mailing list