mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 19:36:15 +00:00
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>
This commit is contained in:
parent
9590709e8c
commit
a969d1dd45
2 changed files with 7 additions and 5 deletions
|
@ -11,6 +11,7 @@
|
|||
#include <string.h>
|
||||
#include "dive.h"
|
||||
#include "deco.h"
|
||||
#include "units.h"
|
||||
#include "divelist.h"
|
||||
#include "planner.h"
|
||||
#include "gettext.h"
|
||||
|
@ -420,7 +421,7 @@ void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool show_d
|
|||
put_string(&buf, "<br>");
|
||||
|
||||
const char *depth_unit;
|
||||
int altitude = (int) get_depth_units((int) (log(1013.0 / diveplan->surface_pressure) * 7800000), NULL, &depth_unit);
|
||||
int altitude = (int) get_depth_units((int) (pressure_to_altitude(diveplan->surface_pressure)), NULL, &depth_unit);
|
||||
|
||||
put_format_loc(&buf, translate("gettextFromC", "ATM pressure: %dmbar (%d%s)<br></div>"), diveplan->surface_pressure, altitude, depth_unit);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue