Scubapro Aladin Square

Linus Torvalds torvalds at linux-foundation.org
Thu Nov 16 08:53:46 PST 2017


On Wed, Nov 15, 2017 at 10:20 PM, vavincavent <vavincavent at gmail.com> wrote:
>
> In libdivecomputer library, we have 2 branches (libdivecomputer and
> libdc). One is with uwatec_g2.c and the other with scubapro_g2.c.
> Can you explain me the difference and wich one is the better for me?

The only one that works with subsurface is the subsurface branch.

The reason is that we use a string interface extension that Jef has
never merged despite several attempts from our side to get it
upstream. It's required for sane handling of "misc" things, like
modern events that don't match the libdivecomputer enumeration model,
or things like getting proper serial numbers and battery level
information etc.

Similarly, the subsurface branch has support for custom IO interfaces,
which we use for Bluetooth LE.

The particular issue of the Scubapro G2 file is that I did the code to
download from USB and bluetooth, and felt that it should be called
"Scubapro", because that's what the dive computers are sold as. Jef
took _that_ part of our subsurface work, but wanted to call it Uwatek
(that's the subsidiary that designs the dive computers).

But the code is largely in sync. I say "largely", because since Jef
hasn't taken our custom IO layer changes, the actual low-level packet
handling code isn't the same. I try to generally keep the differences
fairly minimal, just to make it easier to merge.

I have offered Jef to send a clean patch-series to merge all the
features we need and try to get back to a unified code base, but Jef
has not accepted. And I don't have the inclination or time to fight
about it. So I'm just passively-aggressively pointing out that
upstream libdivecomputer isn't good enough for us.

                  Linus


More information about the subsurface mailing list