From cc53a0cf5c4748853884eb92b100f0e406b015ae Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 10 Nov 2012 09:37:23 +0100 Subject: [PATCH] Use correct surface pressure to detect ceiling with Uemis Zurich The dive data contains the surface pressure prior to the dive, and that is what we need to compare p_amb_tol to, not the standard 1013mbar. Signed-off-by: Dirk Hohndel --- dive.h | 1 + uemis.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dive.h b/dive.h index d9f587a79..114ab9cbf 100644 --- a/dive.h +++ b/dive.h @@ -269,6 +269,7 @@ struct dive { duration_t duration, surfacetime; int visibility; /* 0 - 5 star rating */ temperature_t airtemp, watertemp; + pressure_t surface_pressure; cylinder_t cylinder[MAX_CYLINDERS]; weightsystem_t weightsystem[MAX_WEIGHTSYSTEMS]; char *suit; diff --git a/uemis.c b/uemis.c index 8758b7f38..c12b53c8e 100644 --- a/uemis.c +++ b/uemis.c @@ -180,7 +180,9 @@ void uemis_event(struct dive *dive, struct sample *sample, uemis_sample_t *u_sam * warnings / alerts - not useful for events */ /* now add deco / ceiling events */ - if (u_sample->p_amb_tol > 1013 && u_sample->hold_time && u_sample->hold_time < 99) { + if (u_sample->p_amb_tol > dive->surface_pressure.mbar && + u_sample->hold_time && + u_sample->hold_time < 99) { add_event(dive, sample->time.seconds, SAMPLE_EVENT_CEILING, SAMPLE_FLAGS_BEGIN, u_sample->hold_depth * 10, N_("ceiling")); add_event(dive, sample->time.seconds, SAMPLE_EVENT_DECOSTOP, 0, @@ -210,7 +212,7 @@ void uemis_parse_divelog_binary(char *base64, void *datap) { datalen = uemis_convert_base64(base64, &data); dive->airtemp.mkelvin = *(uint16_t *)(data + 45) * 100 + 273150; - + dive->surface_pressure.mbar = *(uint16_t *)(data +43); /* dive template in use: 0 = air 1 = nitrox (B)