[PATCH 0/5] Improve and automate best mix calculations

Rick Walsh rickmwalsh at gmail.com
Mon Jul 4 15:57:03 PDT 2016

On 5 Jul 2016 07:33, "Robert Helling" <helling at atdotde.de> wrote:
> Rick,
>> Am 02.07.2016 um 09:51 schrieb Robert Helling <helling at atdotde.de>:
>> thanks a lot. I will look at this more closely once I have a little bit
of time (hopefully this weekend).
> so here are my comments:

Thanks for reviewing this.
> In patch 4/5 you do
> + if (((cyl->gasmix.o2.permille == 0) ? O2_IN_AIR :
cyl->gasmix.o2.permille) + cyl->gasmix.he.permille > 1000)
> Please do not access the permille’s directly when you are reading. Use
get_o2(cal->gasmix) and get_he() instead.
> Also, don’t use upper case function names in C code (best_He -> best_he)
I'll send a revised version using the get functions and lowercase names.

> Then, there seems to be a problem with rounding (and that might be more
what the user expects rather than a mathematical issue): For EAN50 I expect
(at least for max_po2=1.6 bar) to get an MOD of 21m. That is what everybody
uses. So subsurface should do this as well. In the old MOD calculation we
fiddled with the rounding until we did. You should do as well as otherwise
users will tell us we cannot do math (even if it’s them).
When entering cylinders and gasmixes we don't distinguish between bottom
mix and deco gasses. The depth column still gives the deco mod - I haven't
touched this, the value is calculated using deco pO2 (default 1.6) and
rounded down to 3m / 10' increments. The new bottom mod column always uses
the bottom pO2 (default 1.4). Do you think that should round down to 3m
increments too? I'm not aware of the same convention for bottom mix mod as
deco mods, which is based on 3m stop intervals.

> Then, if we change the depth of the dive, the percentages are not
updated. We need the plannerPointsModel send a signal to update the best
Really? I thought I sorted that out. The mix will only change if the *
option is used, otherwise the mix is calculated based on the specified
depth in the bottom mod field, not the max depth.

> When I set two cylinders to use best mix and then change the max po2, i
get an too many gas mixes error.
I'll look into that.  In testing I came across and fixed a few too many gas
errors, but clearly missed that.

> Finally, there is the question which max pO2 to use. For the „*“ option
it should definitely be the bottom one, but for deco mixes I would assume
the deco pO2, wouldn’t you?
For deco mixes, the mod is shown in the depth field (as it always has been)
and uses the deco max pO2. The bottom mod field is calculated with the
bottom pO2.

I will look into the points you raised this afternoon my time - just got
home from working nightshift on site and I'm a zombie.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20160705/1c83d49a/attachment.html>

More information about the subsurface mailing list