[PATCH] Add EON Steel gas change event parsing
Jef Driesen
jef at libdivecomputer.org
Sun Jan 4 00:29:00 PST 2015
On 03-01-15 07:39, Linus Torvalds wrote:
> The really sad part is that the EON Steel handles gas change events
> correctly, by actually saying which cylinder it switches to. But the
> libdivecomputer interfaces are broken, and only contain the gas *mix*
> you switch to, which is ambiguous since you could have the same mix in
> multiple cylinders.
Unfortunately I can't really fix this mistake right now, without breaking
backwards compatibility. Otherwise I would have addressed this already.
> Maybe we could put the one-based cylinder index into the "flags" field?
> With zero meaning "unknown". That would be a straightforward extension.
I really don't like this. First of all, the flags field are supposed to be used
for the begin/end flags. Abusing that field for storing the gasmix index is the
same kind of ugly hack that resulted in the SAMPLE_EVENT_GASCHANGE2 encoding. I
would like to get rid of those, not add more! A one based index is also very
confusing, especially because we already use a zero based index in the dc_tank_t
structure.
How about an alternative solution? Instead of trying to re-use the existing
SAMPLE_EVENT_GASCHANGE2 event, why not introduce a new SAMPLE_EVENT_GASCHANGE3
containing just the gasmix index? It maintains backwards compatibility without
needing any ugly hacks. After v0.5 is released, we can deprecate the other two
(but leave the constants in place) and port all backends to the new event for a
v0.5.1 release shortly afterwards. That way, applications will have a clear
timeframe for migrating to the new model. So that looks like a sane compromise
to me.
Actually, instead of yet another gas change event, I believe we should model the
active gasmix as a DC_SAMPLE_GASMIX sample type (also containing the zero based
gasmix index as the value). That's similar to what we already have for setpoint
changes, and also a move in the right direction for the new api design. See the
attached patch.
Jef
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-support-for-the-active-gas-mix.patch
Type: text/x-patch
Size: 1258 bytes
Desc: not available
URL: <http://libdivecomputer.org/pipermail/devel/attachments/20150104/45d16530/attachment.bin>
More information about the devel
mailing list