From a969d1dd4518ce77e8fba920aec4a5d8cfd1f636 Mon Sep 17 00:00:00 2001 From: willemferguson Date: Wed, 15 May 2019 18:39:29 +0200 Subject: Implement height-to-pressure functions in planner The units.h file has two functions to convert atm pressure to mbar and also to convert mbar to atm pressure. Implement these two functions in the planner. Signed-off-by: willemferguson --- desktop-widgets/diveplanner.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'desktop-widgets') diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp index 4988389c5..af19ed079 100644 --- a/desktop-widgets/diveplanner.cpp +++ b/desktop-widgets/diveplanner.cpp @@ -4,6 +4,7 @@ #include "desktop-widgets/mainwindow.h" #include "core/planner.h" #include "core/qthelper.h" +#include "core/units.h" #include "core/settings/qPrefDivePlanner.h" #include "core/gettextfromc.h" @@ -235,7 +236,7 @@ void DivePlannerWidget::settingsChanged() ui.atmHeight->setMaximum(3000); } ui.atmHeight->blockSignals(true); - ui.atmHeight->setValue((int) get_depth_units((int) (log(1013.0 / plannerModel->getSurfacePressure()) * 7800000), NULL,NULL)); + ui.atmHeight->setValue((int) get_depth_units((int) pressure_to_altitude(plannerModel->getSurfacePressure()), NULL,NULL)); ui.atmHeight->blockSignals(false); } @@ -243,13 +244,13 @@ void DivePlannerWidget::atmPressureChanged(const int pressure) { plannerModel->setSurfacePressure(pressure); ui.atmHeight->blockSignals(true); - ui.atmHeight->setValue((int) get_depth_units((int) (log(1013.0 / pressure) * 7800000), NULL,NULL)); + ui.atmHeight->setValue((int) get_depth_units((int) pressure_to_altitude(pressure), NULL,NULL)); ui.atmHeight->blockSignals(false); } void DivePlannerWidget::heightChanged(const int height) -{ - int pressure = (int) (1013.0 * exp(- (double) units_to_depth((double) height).mm / 7800000.0)); +{ // height is in ft or in meters + int pressure = (int) (altitude_to_pressure(units_to_depth((double) height).mm)); ui.ATMPressure->blockSignals(true); ui.ATMPressure->setValue(pressure); ui.ATMPressure->blockSignals(false); -- cgit v1.2.3-70-g09d2