On Tue, Oct 28, 2014 at 10:39 AM, Dirk Hohndel dirk@hohndel.org wrote:
When discussing this with Jef he usually is not in favor of adding all these speacial things so I'm thinking of doing the parsing in Subsurface instead. You should implement a SAMPLE_VENDOR_EONSTEEL and pass the raw sample data back to subsurface...
I'd much rather just these things as some "string event" back, and *not* make them special to the EON steel.
For the EON Steel, the battery data is literally strings:
"Charge: 98%, Voltage: 4.157V" .. "Charge: 49%, Voltage: 3.802V"
and I'd argue that even if you have a dive computer that natively uses milli-volts and returns it as an integer internally, returning it in that form to any application would be prettyu much by definition broken and useless. The application cannot *do* anything with such data, since it doesn't really have meaning for the application - the best we can ever really do in subsurface is to just display it as a string, and let the human in front of the computer then decide that it means. Without exact information about how precise the voltage is, what the battery type is, etc etc, it's simply impossible to make any sane automated judgement, but a human can at least try to figure out the pattern.
The charge percentage is arguably the more important field for a human, but other dive computers may just give voltage. This is stuff that strings are good for.
So I think we might want to introduce an event type that literally gives two strings: a description and a value. And then subsurface can show that in an information window or something (maybe similarly to how we show the dive computer name - hover over the name, and get the dive computer "random data" fields.
This would allow returning things like "Conservatism" and "Dive mode" too. Again, these things don't have any meaning *across* dive computers, and not all dive computers necessarily even agree about the meaning, so there is no sense in some kind of organized model for the data, but it can be interesting for a human who knows the dive computer to see.
Linus