From: Linus Torvalds torvalds@linux-foundation.org Date: Sat, 3 Jan 2015 17:07:38 -0800 Subject: [PATCH 1/2] Add EON Steel personal adjustment parsing
Suunto calls it "Conservatism" in the dump, but "Personal adjustment" in at least some of the documentation. That's what we expose it as.
Signed-off-by: Linus Torvalds torvalds@linux-foundation.org ---
So a "Personal adjustment" of "P-2" looks a bit odd, but that's how Suunto shows it on the dive computer (with the explanation "More aggressive"), and it matches older Suunto computers that called their personal adjustments P0 .. P2.
src/suunto_eonsteel_parser.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/src/suunto_eonsteel_parser.c b/src/suunto_eonsteel_parser.c index d5fe9f8ca7f2..6296b2642ba0 100644 --- a/src/suunto_eonsteel_parser.c +++ b/src/suunto_eonsteel_parser.c @@ -21,6 +21,12 @@
#include <stdlib.h> #include <string.h> +#include <stdio.h> + +/* Wow. MSC is truly crap */ +#ifdef _MSC_VER +#define snprintf _snprintf +#endif
#include <libdivecomputer/suunto_eonsteel.h>
@@ -756,6 +762,15 @@ static int traverse_header_fields(suunto_eonsteel_parser_t *eon, const char *nam if (!strcmp(name, "Diving.DiveMode")) return add_string(eon, "Dive Mode", data);
+ /* Signed byte of conservatism (-2 .. +2) */ + if (!strcmp(name, "Diving.Conservatism")) { + char buffer[10]; + int val = *(signed char *)data; + + snprintf(buffer, sizeof(buffer), "P%d", val); + return add_string(eon, "Personal Adjustment", buffer); + } + return 0; }