[PATCH] Added support for parsing temperature in the dive header
Jef Driesen
jef at libdivecomputer.org
Tue Sep 2 01:04:01 PDT 2014
On 2014-08-25 18:06, Dirk Hohndel wrote:
> Humor aside, I continue to be puzzled by this argument. There are a
> couple
> of divecomputers that provide these data and there is a clear use case.
> Whether you use it on your dive computer frankly doesn't matter (and
> just
> for the record, I tend to always adjust the tank size on my Uemis).
> What
> matters is that there are data that could reasonably be provided by
> libdivecomputer at zero incremental cost for all the dive computers
> that
> don't have it, though for the past two years whenever the conversation
> comes up you explain why it's not needed.
>
> I agree, gasoline cars work and most cars have a gasoline engine. There
> are only a few electric car makers out there. Yet as the owner of two
> such
> cars I think it would be useful if gas stations and hotels provided a
> way
> to charge cars. Oh, and they use different charging ports. One that's a
> bit awkward but very popular, the other that's better and used by the
> rest
> of the world. Smart gas stations and hotels will support both...
>
> But I digress. It's your project. I continue to be too lazy to fork it
> so
> I will continue to just work around the parts where you don't see that
> you
> continue to go the wrong direction.
[Sorry for the slow response, but I've been busy with non
libdivecomputer related things.]
I was only explaining the arguments why *I* think the tank size isn't a
critical piece of information. Just like you explained yours. Nothing
more, nothing less. With good arguments, you can certainly convince me
to do things different. That's why I asked for feedback in the first
place! Otherwise I would just have applied the change and be done with
it.
Yes, you are absolutely right that I'm often reluctant when it comes to
adding new features. However you have to keep in mind that I get many
request for adding new features. Usually those are along the lines of
"Hey, I have dive computer X and the official application shows info Y,
and I would like to have that in application Z too". In theory (ignoring
the time required to reverse engineer the necessary info), I can easily
add support for such new features, because they don't really interfere
with anything else. But the real question here is not whether we can
support this, but whether we want to!
Remember that adding features ad-hoc, based on what a certain
manufacturer (e.g. suunto, which happens to be the first supported
devices) provides is pretty much how the current libdivecomputer
"design" evolved into what we have now. Linus and you already complained
several times about the current libdivecomputer api. Don't get me wrong,
I absolutely agree that many of those concerns are indeed valid and
should be addressed. But for the time being, I just don't want to repeat
those mistakes again. So yes, I'm a lot more careful when it comes to
adding new features now.
Also from an application point of view, I think it's more interesting to
have a rather limited set of features that is very well supported by the
majority of the backends, then having a large number of features that
are only supported by a few backends. That's basically why I have been
spending most of my time and energy on improving the existing features,
and not adding anything new.
But okay, maybe I went into the defensive corner too fast. So let's
start all over again, and assume we want to include the tank size too.
Can you explain me how you would use the dc_tankdata_t structure in the
following scenarios:
* No tank size available (e.g. just begin/end pressure): How do we
indicate that the tank size isn't available?
* Metric vs imperial tanks (e.g. water vs air capacity): How do we
indicate the difference? For imperial tanks, we'll certainly need the
working pressure. Metric tank also have a working pressure, and although
it's not needed for calculating the amount of gas, it may be available
too. Do we convert imperial units to metric units to be consistent with
the rest of the libdivecomputer api, or do we make an exception here?
And then we can work out something from there.
Jef
More information about the devel
mailing list