Inconsistencies: Showing planner details in dive list

Robert Helling helling at
Wed Feb 1 04:58:55 PST 2017


> On 01 Feb 2017, at 08:05, Willem Ferguson <willemferguson at> wrote:
> Following on previous similar correspondence, here are some comments about importing a dive plan into the dive list and adding it to the downloaded dive record so that one can switch between plan and downloaded dive using left and right arrow keys. My procedure was as follows:
> 1) Save the dive plan into the dive log
> 2) After the dive, change the date/time of the plan so that it is one minute after that of the real dive. This shows the dive plan immediately above the real dive in the dive list.
> 3) Merge the dive and the dive plan.
> Using version 4.6.0-40-g75ae, two issues, a large one and a small one:
> 1) Attached are four images, indicating the dive as well as the plan before and after the merge operation. The plan and the dive differ in small details because the exact cylinder pressures and gas mixtures measured from the cylinders just before the dive are not exactly those specified during the planning process. In this example, the back gas was EAN28, and not EAN29 as planned and the deco gas was EAN56, not EAN60 as planned. The initial backgas cylinder pressure was 225 bar and nor 232 bar as planned, etc. When rendering the dive and the dive plan, there is a curious mixture of gas composition and gas pressures between the two profiles. For instance, the dive plan back gas is EAN28, and not EAN29 as in the before-merger plan The deco gas is EAN56 in the plan and not EAN60 as in the before-merger plan. The starting deco gas pressure in the plan is 210, and not 207 as in the before-merger plan. Und so weiter und so weiter. For the downloaded dive profile, the gas mixtures are correct, but the gas pressure data are incorrect: the backgas starts off at 232 bars and not at 225 bars. The start and end pressures of the EAN36 are both wrong. Also, there are small but significant differences between the ceiling information of the downloaded dive profile before merging with the plan and that after the merger: after merger, the ceiling is lower.
> 2) The small issue: before merging, when changing the date-time of the plan to coincide with that of the downloaded profile, the plan is always shown first and the downloaded profile second. I would like the order to be the other way round: the downloaded profile should be the default view, with the plan being shown if one hits the right-arrow key. The only way I have managed to get the right order is to make the date-time of the plan one minute later than that of the downloaded profile. This is what I did in this case (the dive plan is shown as profile 2 of 2)
> Is this user error or does it indicate problems created by the merging process?

turns out this is not specific to the planner, it is a „feature“ of how we merge dives:

Looking at the code in dive.c (and the xml file), the information about the cylinders is per dive rather than per dive computer and for each computer it only states at which point in time we switch to which cylinder. Specifically, in the code it says:

/* Pick whichever has any info (if either). Prefer 'a' */
static void merge_cylinder_type(cylinder_type_t *src, cylinder_type_t *dst)

I guess, that is the natural thing to do if it is really the same dive recorded by two dive computers (there is the _actual_ set of cylinders after all). I see that in your case where you compare the actual dive to a theoretical one, this makes little sense.

I don’t know, but we might want to detect this case and rather take the union of the sets of cylinders.

Any volunteers to implement this?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <>

More information about the subsurface mailing list