summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar willemferguson <willemferguson@zoology.up.ac.za>2019-05-15 18:39:29 +0200
committerGravatar bstoeger <32835590+bstoeger@users.noreply.github.com>2019-05-17 09:46:05 +0200
commita969d1dd4518ce77e8fba920aec4a5d8cfd1f636 (patch)
tree0906b0c0305cf323585b67522b0487d646e74677 /desktop-widgets
parent9590709e8c379e5d8b62b426cf4d5b1d59aa8b84 (diff)
downloadsubsurface-a969d1dd4518ce77e8fba920aec4a5d8cfd1f636.tar.gz
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 <willemferguson@zoology.up.ac.za>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/diveplanner.cpp9
1 files changed, 5 insertions, 4 deletions
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);