From ae954af768c7b52e8348e3a5aa5456b6fe6455bc Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Sat, 21 Jan 2017 09:39:28 +0100 Subject: [PATCH] Parse the sample interval correctly The Cressi Drake supports a sample interval of 1, 2, 3 and 4 seconds. --- src/cressi_leonardo_parser.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cressi_leonardo_parser.c b/src/cressi_leonardo_parser.c index cd97d9a..54ffbb4 100644 --- a/src/cressi_leonardo_parser.c +++ b/src/cressi_leonardo_parser.c @@ -125,7 +125,11 @@ cressi_leonardo_parser_get_field (dc_parser_t *abstract, dc_field_type_t type, u unsigned int interval = 20; if (parser->model == DRAKE) { - interval = 1; + interval = data[0x17]; + } + if (interval == 0) { + ERROR(abstract->context, "Invalid sample interval"); + return DC_STATUS_DATAFORMAT; } dc_gasmix_t *gasmix = (dc_gasmix_t *) value; @@ -172,7 +176,11 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac unsigned int time = 0; unsigned int interval = 20; if (parser->model == DRAKE) { - interval = 1; + interval = data[0x17]; + } + if (interval == 0) { + ERROR(abstract->context, "Invalid sample interval"); + return DC_STATUS_DATAFORMAT; } unsigned int gasmix_previous = 0xFFFFFFFF;