12 Commits

Author SHA1 Message Date
Linus Torvalds
97a8d41089 Add EON Steel bookmarks, warnings and alarm events
I'd missed these because I'm blind. But mostly because they aren't as
common.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-01-08 08:49:36 +01:00
Linus Torvalds
92371935fc Parse EON Steel notification and state changes
The EON Steel notifications and states match the libdivecomputer ones
very badly, but this tries to make sense of the ones that match.  And
puts the infrastructure in to do others in the future.

Signed-off-by: Linus Torvalds <torvalds@linux-fouindation.org>
2015-01-08 08:49:36 +01:00
Linus Torvalds
7a7418421c Add EON Steel gas change event parsing
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.

Maybe we could put the one-based cylinder index into the "flags" field?
With zero meaning "unknown". That would be a straightforward extension.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-01-08 08:49:36 +01:00
Jef Driesen
21f3dbcb04 Add a default case to the switch statement.
This is only the silence the "enumeration value not handled in switch"
compiler warning. There is already a check earlier on to take care of
unsupported fields, but the default case is a good practice anyway.
2014-11-24 11:57:23 +01:00
Jef Driesen
0ed5e6d653 Fix another memory leak.
The array with type descriptors is populated with dynamically allocated
strings, but they are never freed anywhere. To be able to free those
strings easily, they are now initialized with NULL pointers instead of
zero length strings.
2014-11-24 11:57:23 +01:00
Jef Driesen
6df4f00822 Fix a NULL pointer dereference. 2014-11-24 11:37:24 +01:00
Jef Driesen
dbcaa6946a Add explicit casts for the msvc C++ compiler. 2014-11-24 11:37:24 +01:00
Jef Driesen
4120b2f0e9 Replace void pointers with unsigned char pointers.
Since we're dealing with byte arrays, there's no need to use void
pointers. Using unsigned char pointers also eliminates some compiler
warnings for pointer arithmetic on void pointers.
2014-11-24 11:37:24 +01:00
Jef Driesen
e8c2e87919 Remove the custom logging functions.
There is no need for custom logging functions, because libdivecomputer
already has an extensive logging infrastructure, featuring conditional
compilation, multiple loglevels, customization by the application, etc.
2014-11-24 11:37:24 +01:00
Jef Driesen
3368294018 Don't terminate the application on error.
Terminating the application on error, by calling exit, is not
appropriate in a library. An error code should be returned instead.
2014-11-24 11:37:24 +01:00
Jef Driesen
686500d51b Follow the libdivecomputer naming conventions.
All entry point functions (e.g. public functions or functions called
through the vtable) use the backend name as the prefix. The same applies
to the main device and parser structures.
2014-11-24 11:37:24 +01:00
Linus Torvalds
5c967f3382 Suunto EON Steel: support downloading of core dive profile data
Basic Suunto EON Steel downloading copied from my test application.
This parses all the core dive data, including sample data (time, depth,
cylinder pressure, deco information etc).

The deco information returns ceiling and TTS rather than ceiling and
"time at ceiling", because that's what the dive computer has, and I
don't see any other way to return the information.

We don't report any events yet, though.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-11-24 11:37:23 +01:00