Minor PSCR fixes

Update O2 metabolsim rate and adopt default gas switch depths to
pSCR oxygen drop.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Robert C. Helling 2015-01-16 13:02:26 +01:00 committed by Dirk Hohndel
parent ac40c458fa
commit f2939dd991
4 changed files with 12 additions and 3 deletions

View file

@ -905,7 +905,11 @@ bool DivePlannerPointsModel::addGas(struct gasmix mix)
/* The depth to change to that gas is given by the depth where its pO₂ is 1.6 bar.
* The user should be able to change this depth manually. */
pressure_t modpO2;
modpO2.mbar = prefs.decopo2;
if (displayed_dive.dc.divemode == PSCR)
modpO2.mbar = prefs.decopo2 + (1000 - get_o2(&mix)) * SURFACE_PRESSURE *
prefs.o2consumption / prefs.decosac / prefs.pscr_ratio;
else
modpO2.mbar = prefs.decopo2;
cyl->depth = gas_mod(&mix, modpO2, M_OR_FT(3,10));

View file

@ -1022,6 +1022,7 @@ void MainTab::divetype_Changed(int index)
displayed_dive.dc.divemode = (enum dive_comp_type) index;
update_setpoint_events(&displayed_dive.dc);
markChangedWidget(ui.DiveType);
MainWindow::instance()->graphics()->replot();
}
void MainTab::on_watertemp_textChanged(const QString &text)

View file

@ -284,7 +284,11 @@ bool CylindersModel::setData(const QModelIndex &index, const QVariant &value, in
if (CHANGED()) {
cyl->gasmix.o2 = string_to_fraction(vString.toUtf8().data());
pressure_t modpO2;
modpO2.mbar = prefs.decopo2;
if (displayed_dive.dc.divemode == PSCR)
modpO2.mbar = prefs.decopo2 + (1000 - get_o2(&cyl->gasmix)) * SURFACE_PRESSURE *
prefs.o2consumption / prefs.decosac / prefs.pscr_ratio;
else
modpO2.mbar = prefs.decopo2;
cyl->depth = gas_mod(&cyl->gasmix, modpO2, M_OR_FT(3, 10));
changed = true;
}

View file

@ -46,7 +46,7 @@ struct preferences default_prefs = {
.drop_stone_mode = false,
.bottomsac = 20000,
.decosac = 17000,
.o2consumption = 1000,
.o2consumption = 720,
.pscr_ratio = 100,
.show_pictures_in_profile = true,
.tankbar = false,