Re: Shearwater imports - phantom cylinders when additional gas mixes are configured

2023-11-13 Thread micha via subsurface

Hi Jef,

Thanks for your additional in-depth explanation!

On 2023-11-13 19:48, Jef Driesen wrote:

On 13/11/2023 01:44, micha via subsurface wrote:

Option 4 :  Figure out why Subsurface is importing a "gaschange" event
to a third cylinder instead of assigning it to one of the cylinders 
with

transmitter values attached.


That's easy to answer. You have 4 configured gas mixes:



Based on previous conversations, I was already aware of the assignment 
of transmitters to gas mixes on a 1:1 basis, working down from 
highest-to-lowest mix. Of course without any additional data linking 
transmitters to mixes there's nothing Subsurface can do to "get it 
right" (*1).


I didn't know (or forgot..) that the "gaschange" event came from the 
computer reporting the 32% mix at the start of the dive. So that 
explains that...


If Shearwater already reports the on/off status of gas mixes, then it 
seems adding support for that during the download will solve the vast 
majority of my issues without needing to add any additional 
fixes/tweaks. (*1) Of course, if I carry a deco mix as well as my 
sidemount tanks, Subsurface will still assign T1 to my deco mix and T2 
to my sidemount mix.. unless, as you already mentioned, we can use the 
"sidemount" flag from libdivecomputer.



I still think it'd be nice to expose the initial "gaschange" event in 
the UI so users can edit or delete it if they feel it's wrong. Maybe 
hide it by default but add a configuration option to show it? I can 
trivially implement this.




@Micha: Can you do a full download of your dives with both the "Force
download of all dives" and "Save libdivecomputer logfile" checkboxes
enabled, and send me the log?


What's the best way to provide you with the log data? Attached to the 
mailing list here? Zipped or as-is? I already have a libdivecomputer log 
file of my last 5 or so dives, which contain the dives of interest.



(*) In libdivecomputer master there is already a sidemount flag that
could help subsurface to figure this out too.

Adding a "Sidemount" the the "Dive Mode" list would be a nice addition 
to Subsurface, also for the Planner. Currently when I plan a sidemount 
dive, it complains I don't have enough gas.. because it only takes the 
first cylinder into account. Not a huge issue, but still, "nice to 
have". I guess I can take a look at it.



Cheers,
 - Micha.
___
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface


Re: Shearwater imports - phantom cylinders when additional gas mixes are configured

2023-11-13 Thread Jef Driesen via subsurface

On 13/11/2023 01:44, micha via subsurface wrote:

Option 4 :  Figure out why Subsurface is importing a "gaschange" event
to a third cylinder instead of assigning it to one of the cylinders with
transmitter values attached.


That's easy to answer. You have 4 configured gas mixes:


 1. (off) 99/00
 2. (off) 51/00
 3. (ON) 32/00
 4. (off) 21/00
 5. (off) 0/0  (never configured a fifth mix, so this is still the
original default)


And you also have two transmitters T1 and T2.

Now, because there is no information present to be able to link a transmitter to 
the corresponding gas mix, subsurface simply links them one to one (e.g. gas 1 
with transmitter 1, and so on), and you end up with 4 tanks:



1. EAN99 (with T1 data attached)
2. EAN51 (with T2 data attached)
3. EAN32 (attached to an initial invisible-in-the-UI "gaschange" event
which is in the Subsurface computer dive log at time 0:10, the same time
as the first log event from the dive computer).


But the dive computer does report the dive starts with EAN32, and thus there is 
also a gaschange to this gas mix present. That's why subsurface considers this 
cylinder in use. The other two cylinders are not considered in use, because 
there were no gas changes to EAN99 or EAN51. But there is of course pressure 
still data for them.


The extra 4th tank will get Air as mix. Depending on your subsurface settings, 
this one might remain hidden in the UI because it's not used in any way (no gas 
change and no pressure data).



Of course, if I've done something wrong with configuring Subsurface or
my Dive Computer, I'd be more than happy to fix the errors of my ways,
but long previous discussions have led me to believe it's an issue with
the way Subsurface and libdivecomputer import dives and assign gas mixes
to tanks, in combination with the Shearwater protocol not supplying
information as to which gas mixes are active and which are inactive.


There is nothing wrong on your side. The main problem is indeed the fact there 
is no direct link between gas mixes and tanks in the Shearwater data format. 
That means subsurface has to guess, and in some cases that goes wrong.


But what makes this situation even worse here, is that I assumed the on/off 
status of the gas mixes isn't present in the data. The result is that always all 
5 gas mixes are reported (unless their He/02 content is reset to 0/0). Of 
course, the more gas mixes are present, the higher the chance the linking goes 
wrong, especially when those excess gas mixes are first in the list.


Looking again at the documentation, it seems the on/off info is actually 
present. I just never noticed its presence. Probably a feature that was added in 
a later firmware version? So that means we can hide those EAN99 and EAN51 mixes! 
That won't solve every case, because subsurface still won't know what gas mix is 
in your second tank (*), but it should already be a nice improvement.


(*) In libdivecomputer master there is already a sidemount flag that could help 
subsurface to figure this out too.


@Micha: Can you do a full download of your dives with both the "Force download 
of all dives" and "Save libdivecomputer logfile" checkboxes enabled, and send me 
the log? I would like to have a look at your dives to implement this fix. After 
the download you can simply cancel without re-importing any dives into your logbook.


Jef
___
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface


Re: Shearwater imports - phantom cylinders when additional gas mixes are configured

2023-11-12 Thread micha via subsurface

On 10 Nov 2023, 22:41, Hartley Horwitz via subsurface wrote:

[HH] I dive the same sidemount configuration, Shearwater Teric and 
Perdix AI set in tech mode, Sidemount AI feature enabled (you didn't 
mention if that's the case for you). I also dive with a 3rd cylinder 
(deco) without a transmitter. I define 2 gases for dives with 3 
cylinders, so 2 gases are "ON", 1 gas is "ACTIVE".




I've got no idea what you mean between "ON" and "ACTIVE" - as far as I 
can tell, the Perdix only allows a gas mix to be "on" or "off".


To clarify my configuration:

* my Shearwater AI is configured in Tec mode. AI is set to "SM1+2" (the 
new sidemount mode added a firmware update or two back).


* OC Gases configured (I dive a variety of configurations, sometimes on 
the same day, so I don't really feel like constantly deleting/changing 
gases. I just toggle the ones I dive with to "on" and the remaining ones 
to "off":

   1. (off) 99/00
   2. (off) 51/00
   3. (ON) 32/00
   4. (off) 21/00
   5. (off) 0/0  (never configured a fifth mix, so this is still the 
original default)


During my most recent sidemount dives, I have 2 transmitters, T1 (left), 
and T2 (right), attached to a tank each of EAN32.  I just dive the dive, 
switching between tanks as necessary during the dive, but I never 
manually add a gaschange event on the computer (during tec dives I 
obviously would..).


Following the dive, I import using -either- Subsurface on Android, or 
Subsurface on Linux; the result is the same. I can provide an import log 
and libdivelog log file (dump didn't work).


The resulting imported dives show 3 cylinders in the UI (there are more 
in the actual log):

1. EAN99 (with T1 data attached)
2. EAN51 (with T2 data attached)
3. EAN32 (attached to an initial invisible-in-the-UI "gaschange" event 
which is in the Subsurface computer dive log at time 0:10, the same time 
as the first log event from the dive computer).


[HH] I do not get unexpected gas switches like you've described when 
only dive 2 tanks or choose not to switch to my deco bottle. I import 
my dives into Subsurface using an iPhone. This leads me to guess that 
the difference between your experience and mine is either the setup in 
your Shearwater, or the difference in the app you use to download into 
Subsurface (android for iOS).


Do you manually inspect the log files, or only use the UI? Because the 
UI does NOT show the initial gas change event..




Like you, I can easily fix the incorrect gas-mixes attached to the 
transmitters using the UI, but the third cylinder cannot be deleted as 
it's marked "in-use" by Subsurface.  Funnily enough, Cylinders 1 & 2 
which actually have transmitter data attached to them can be deleted...


The overall result in Subsurface is that it's not displaying gas usage 
properly - the pressure the graphs are coloured in red instead of by SAC 
rate, and no SAC overall SAC is calculated or displayed.


If I manually edit the dive log and delete the first gas-change event, 
everything works as expected in Subsurface.
Alternatively if I modify the original gas-change event to point to 
either of my real cylinders, again, it all works as expected.


Hence my proposals on how to implement a quick fix and asking which is 
the preferred approach.


Option 4 :  Figure out why Subsurface is importing a "gaschange" event 
to a third cylinder instead of assigning it to one of the cylinders with 
transmitter values attached.



Of course, if I've done something wrong with configuring Subsurface or 
my Dive Computer, I'd be more than happy to fix the errors of my ways, 
but long previous discussions have led me to believe it's an issue with 
the way Subsurface and libdivecomputer import dives and assign gas mixes 
to tanks, in combination with the Shearwater protocol not supplying 
information as to which gas mixes are active and which are inactive.


Here is a snippet from an imported log file (not modified) for 
illustrative purposes:




duration='4:30 min'>
  
  
  

  
  />

  
  diveid='120b5b60'>

  
  
  
  
  
  
  
  
  
  
  
  
  cylinder='2' o2='32.0%' />
  

  
  
  
  
  





Date: Sun, 12 Nov 2023 15:09:14 +
From: Willem Ferguson 
On the Shearwater the cylinders/gases are defined in a specific order
using the System Setup panel. In the equipment tab of Subsurface I
define my cylinders in the same order. I have never encountered the


The gases configured in the Shearwater can't be ordered; they are always 
ordered by oxygen percentage.
When importing in Subsurface, you can't pre-define cylinders; cylinders 
are defined by Subsurface during the import process, following which you 
can do certain modifications on them such as adding, deleting (some), 
changing their mixes and sizes, etc.


So I'm sorry, but I fail to understand what you're getting at here.

Wbr,
 - Micha.

___
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi

Re: Shearwater imports - phantom cylinders when additional gas mixes are configured (micha

2023-11-12 Thread Willem Ferguson via subsurface
I dive similar configurations, using a Petrel with Subsurface on Linux. Saving 
a dive using an app can be problematic because the app does not allow several 
items to be specified. A few pointers when using Linux. I assume the behavior 
on Mac is identical.
On the Shearwater the cylinders/gases are defined in a specific order using the 
System Setup panel. In the equipment tab of Subsurface I define my cylinders in 
the same order. I have never encountered the type of problem you describe. Try 
it out on either Linux or Mac. This will allow you to ascertain whether it is a 
user problem, an iPhone app problem or a general problem. I suspect an app 
problem. The app, as far as I can see, does not allow specification of 
individual cylinders. If cylinders are not explicitly defined beforehand, you 
have to trust the way that Shearwater defines the cylinders exported to the 
Subsurface app and this is not guaranteed to be 100% intelligible to the Dive 
log software. For that reason I save dives using Linux, keep master dive log on 
Linux, and then synchronize the dive log on the app. I hope this makes sense. 
Kind regards, willem.

Sent from Proton Mail mobile

 Original Message 
On 10 Nov 2023, 22:41, Hartley Horwitz via subsurface wrote:

>> -- Forwarded message --
>> From: micha 
>> To: subsurface@subsurface-divelog.org
>> Cc:
>> Bcc:
>> Date: Fri, 10 Nov 2023 08:29:05 +1000
>> Subject: Shearwater imports - phantom cylinders when additional gas mixes 
>> are configured
>> .snip
>>
>> At the moment I'm diving Sidemount again, and again having issues with
>> spurious cylinders due to additional gasses being defined (although
>> disabled) on my Shearwater computer. Recreationally I dive with 2
>> cylinders filled with the same gas mix (typically Air or EAN32), and
>> both cylinders have a transmitter. I leave my computer in "Tec" mode and
>> leave the common mixes I use during other dives disabled instead of
>> deleting them.
>
> [HH] I dive the same sidemount configuration, Shearwater Teric and Perdix AI 
> set in tech mode, Sidemount AI feature enabled (you didn't mention if that's 
> the case for you). I also dive with a 3rd cylinder (deco) without a 
> transmitter. I define 2 gases for dives with 3 cylinders, so 2 gases are 
> "ON", 1 gas is "ACTIVE".
>
> I do a gas switch if diving with 3 tanks near the end of the dive even with 
> no deco obligations
>
> Upon import, I see a slightly different issue. Firstly, it assumes that only 
> 1 of my two sidemount tanks has EAN32 (an example) and defaults the 2nd tank 
> to air. That takes a minor edit on the equipment tab on subsurface
>
> The gas switch event on Subsurface is switching tank 1 to tank 2 (my 2nd 
> sidemount tank). Using the desktop UI, I switch that to my 3rd deco tank.
>
> I do not get unexpected gas switches like you've described when only dive 2 
> tanks or choose not to switch to my deco bottle. I import my dives into 
> Subsurface using an iPhone. This leads me to guess that the difference 
> between your experience and mine is either the setup in your Shearwater, or 
> the difference in the app you use to download into Subsurface (android for 
> iOS).
>
>> ..snip..
>> I can manually fix the gas mix for Cylinders 1 & 2 using the UI. But
>> the only way to currently get rid of the phantom Cylinder 3 is by
>> manually editing the log files and deleting the initial gas change
>> event.
>>
>> Now, I see several simple approaches to allow the user to fix this using
>> the Subsurface UI:
>>
>> 1. Don't generate the initial "gaschange" event, which is wrong anyway.
>> (At this stage I'm not entirely sure if this is being sent by the dive
>> computer, or generated by Subsurface during the import process; still
>> investigating). Subsurface doesn't seem to need an initial "gaschange"
>> event to render a dive correctly.
>>
>> 
>> I also contacted Shearwater about adding gas status (on/off) to their
>> protocol, but did not receive a reply.
>>
>> Thanks,
>> - Micha.___
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface


Shearwater imports - phantom cylinders when additional gas mixes are configured (micha

2023-11-10 Thread Hartley Horwitz via subsurface
>
>
> -- Forwarded message --
> From: micha 
> To: subsurface@subsurface-divelog.org
> Cc:
> Bcc:
> Date: Fri, 10 Nov 2023 08:29:05 +1000
> Subject: Shearwater imports - phantom cylinders when additional gas mixes
> are configured
> .snip
>
> At the moment I'm diving Sidemount again, and again having issues with
> spurious cylinders due to additional gasses being defined (although
> disabled) on my Shearwater computer. Recreationally I dive with 2
> cylinders filled with the same gas mix (typically Air or EAN32), and
> both cylinders have a transmitter. I leave my computer in "Tec" mode and
> leave the common mixes I use during other dives disabled instead of
> deleting them.
>

[HH] I dive the same sidemount configuration, Shearwater Teric and Perdix
AI set in tech mode, Sidemount AI feature enabled (you didn't mention if
that's the case for you).   I also dive with a 3rd cylinder (deco) without
a transmitter.  I define 2 gases for dives with 3 cylinders, so 2 gases are
"ON", 1 gas is "ACTIVE".

I do a gas switch if diving with 3 tanks near the end of the dive even with
no deco obligations

Upon import, I see a slightly different issue. Firstly, it assumes that
only 1 of my two sidemount tanks has EAN32 (an example) and defaults the
2nd tank to air.  That takes a minor edit on the equipment tab on subsurface

The gas switch event on Subsurface is switching tank 1 to tank 2 (my 2nd
sidemount tank).  Using the desktop UI, I switch that to my 3rd deco tank.

I do not get unexpected gas switches like you've described when only dive 2
tanks or choose not to switch to my deco bottle. I import my dives into
Subsurface using an iPhone.  This leads me to guess that the difference
between your experience and mine is either the setup in your Shearwater, or
the difference in the app you use to download into Subsurface (android for
iOS).


..snip..
> I can manually fix the gas mix for Cylinders 1 & 2 using the UI.  But
> the only way to currently get rid of the phantom Cylinder 3 is by
> manually editing the log files and deleting the initial gas change
> event.
>
>
> Now, I see several simple approaches to allow the user to fix this using
> the Subsurface UI:
>
> 1. Don't generate the initial "gaschange" event, which is wrong anyway.
> (At this stage I'm not entirely sure if this is being sent by the dive
> computer, or generated by Subsurface during the import process; still
> investigating). Subsurface doesn't seem to need an initial "gaschange"
> event to render a dive correctly.
>
> 
> I also contacted Shearwater about adding gas status (on/off) to their
> protocol, but did not receive a reply.
>
> Thanks,
>   - Micha.
>
>
___
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface


Shearwater imports - phantom cylinders when additional gas mixes are configured

2023-11-09 Thread micha via subsurface

G'day,

(Related background discussion : 
https://groups.google.com/g/subsurface-divelog/c/aIIr0QJuxFY/m/mtnOfhaDAwAJ)


At the moment I'm diving Sidemount again, and again having issues with 
spurious cylinders due to additional gasses being defined (although 
disabled) on my Shearwater computer. Recreationally I dive with 2 
cylinders filled with the same gas mix (typically Air or EAN32), and 
both cylinders have a transmitter. I leave my computer in "Tec" mode and 
leave the common mixes I use during other dives disabled instead of 
deleting them.


The imported dive has 3 cylinders shown, and cannot display or calculate 
gas usage from the transmitters properly (the transmitter data is 
plotted in red, no SAC is calculated).


Cylinder 1 (can be deleted with a warning) - EAN99 - transmitter 1 data
Cylinder 2 (can be deleted with a warning)  - EAN51 - transmitter 2 data
Cylinder 3 (can NOT be deleted)  - EAN32 - initial gaschange event

I can manually fix the gas mix for Cylinders 1 & 2 using the UI.  But 
the only way to currently get rid of the phantom Cylinder 3 is by 
manually editing the log files and deleting the initial gas change 
event.



Now, I see several simple approaches to allow the user to fix this using 
the Subsurface UI:


1. Don't generate the initial "gaschange" event, which is wrong anyway. 
(At this stage I'm not entirely sure if this is being sent by the dive 
computer, or generated by Subsurface during the import process; still 
investigating). Subsurface doesn't seem to need an initial "gaschange" 
event to render a dive correctly.


2. Display the initial "gaschange" event on the dive log (it's currently 
being suppressed).
This would allow the user to edit/delete the event using the UI. Having 
implemented this change in my local build, I can edit the event to point 
to a "real" cylinder which then automatically deletes (or hides) the 
phantom cylinder. Problem solved.


3. Allow the user to delete any cylinder.
Currently the UI allows deletion of some cylinders which are "in use" 
(have transmitter data attached) with only a warning being displayed, 
but not others (such as the one attached to the initial "gaschange" 
event).  I fail to understand why the "gaschange" event is important 
enough to prevent cylinder deletion, but transmitter data is not.



Any other suggestions for "simple" fixes?

Any concerns about any of these approaches breaking other functionality?

Any preference as to which approach to implement?

I also contacted Shearwater about adding gas status (on/off) to their 
protocol, but did not receive a reply.


Thanks,
 - Micha.
___
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface