mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add MOD and MND fields to cylindermodel
Adds fields to the planner cylinder model for maximum operating depth (MOD) for a bottom mix gas, and maximum narcotic depth (MND). Fields are read/write, so changing MOD changes %O2 and vice-versa. Changing MND changes %He and vice-versa. When setting MOD directly, the %O2 is truncated (rounded down) to an integer, which re-calculates the MOD, which is sometimes a few metres greater than the input depth. This is desireable behaviour, as the rounding is conservative. Signed-off-by: Rick Walsh <rickmwalsh@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
9fbd11744f
commit
6ed5e0d621
2 changed files with 26 additions and 11 deletions
|
@ -12,9 +12,9 @@ CylindersModel::CylindersModel(QObject *parent) :
|
||||||
changed(false),
|
changed(false),
|
||||||
rows(0)
|
rows(0)
|
||||||
{
|
{
|
||||||
// enum {REMOVE, TYPE, SIZE, WORKINGPRESS, START, END, O2, HE, DEPTH};
|
// enum {REMOVE, TYPE, SIZE, WORKINGPRESS, START, END, O2, HE, DEPTH, MOD, MND, USE};
|
||||||
setHeaderDataStrings(QStringList() << "" << tr("Type") << tr("Size") << tr("Work press.") << tr("Start press.") << tr("End press.") << tr("O₂%") << tr("He%")
|
setHeaderDataStrings(QStringList() << "" << tr("Type") << tr("Size") << tr("Work press.") << tr("Start press.") << tr("End press.") << tr("O₂%") << tr("He%")
|
||||||
<< tr("Switch at") << tr("Use"));
|
<< tr("Switch at") <<tr("Bot. MOD") <<tr("MND") << tr("Use"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,6 +134,14 @@ QVariant CylindersModel::data(const QModelIndex &index, int role) const
|
||||||
case DEPTH:
|
case DEPTH:
|
||||||
ret = get_depth_string(cyl->depth, true);
|
ret = get_depth_string(cyl->depth, true);
|
||||||
break;
|
break;
|
||||||
|
case MOD:
|
||||||
|
pressure_t modpO2;
|
||||||
|
modpO2.mbar = prefs.bottompo2;
|
||||||
|
ret = get_depth_string(gas_mod(&cyl->gasmix, modpO2, &displayed_dive, M_OR_FT(1,1)));
|
||||||
|
break;
|
||||||
|
case MND:
|
||||||
|
ret = get_depth_string(gas_mnd(&cyl->gasmix, prefs.bestmixend, &displayed_dive, M_OR_FT(1,1)));
|
||||||
|
break;
|
||||||
case USE:
|
case USE:
|
||||||
ret = gettextFromC::instance()->trGettext(cylinderuse_text[cyl->cylinder_use]);
|
ret = gettextFromC::instance()->trGettext(cylinderuse_text[cyl->cylinder_use]);
|
||||||
break;
|
break;
|
||||||
|
@ -273,19 +281,24 @@ bool CylindersModel::setData(const QModelIndex &index, const QVariant &value, in
|
||||||
break;
|
break;
|
||||||
case DEPTH:
|
case DEPTH:
|
||||||
if (CHANGED()) {
|
if (CHANGED()) {
|
||||||
/* Calculate best nitrox mix for cylinder depth if input text ends with "bn",
|
|
||||||
* or best (trimix) mix if input text ends with "b" */
|
|
||||||
if (vString.toLower().endsWith("bn")) {
|
|
||||||
cyl->gasmix.o2 = best_o2(string_to_depth(vString.toUtf8().data()), &displayed_dive);
|
|
||||||
cyl->gasmix.he.permille = 0;
|
|
||||||
} else if (vString.toLower().endsWith("b")) {
|
|
||||||
cyl->gasmix.o2 = best_o2(string_to_depth(vString.toUtf8().data()), &displayed_dive);
|
|
||||||
cyl->gasmix.he = best_He(string_to_depth(vString.toUtf8().data()), &displayed_dive);
|
|
||||||
}
|
|
||||||
cyl->depth = string_to_depth(vString.toUtf8().data());
|
cyl->depth = string_to_depth(vString.toUtf8().data());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case MOD:
|
||||||
|
if (CHANGED()) {
|
||||||
|
// Calculate fO2 for input depth
|
||||||
|
cyl->gasmix.o2 = best_o2(string_to_depth(vString.toUtf8().data()), &displayed_dive);
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MND:
|
||||||
|
if (CHANGED()) {
|
||||||
|
// Calculate fHe for input depth
|
||||||
|
cyl->gasmix.he = best_He(string_to_depth(vString.toUtf8().data()), &displayed_dive);
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case USE:
|
case USE:
|
||||||
if (CHANGED()) {
|
if (CHANGED()) {
|
||||||
int use = vString.toInt();
|
int use = vString.toInt();
|
||||||
|
|
|
@ -19,6 +19,8 @@ public:
|
||||||
O2,
|
O2,
|
||||||
HE,
|
HE,
|
||||||
DEPTH,
|
DEPTH,
|
||||||
|
MOD,
|
||||||
|
MND,
|
||||||
USE,
|
USE,
|
||||||
COLUMNS
|
COLUMNS
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue