mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Be more consistent in partial pressure naming
Lets just use pO₂ instead of PO2, ppO2, ppO₂, PO₂. They all mean the same, but it's better to be consistent Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
21916d67de
commit
630ec88dd4
19 changed files with 59 additions and 60 deletions
|
@ -911,7 +911,7 @@ data, one record per line. CSV files can be opened with a normal text editor.
|
||||||
Following is a highly simplified and shortened example of a CSV file from an
|
Following is a highly simplified and shortened example of a CSV file from an
|
||||||
APD rebreather:
|
APD rebreather:
|
||||||
|
|
||||||
Dive Time (s) Depth (m) PPO2 - Setpoint (Bar) PPO2 - C1 Cell
|
Dive Time (s) Depth (m) pO₂ - Setpoint (Bar) pO₂ - C1 Cell
|
||||||
1 (Bar) Ambient temp. (Celsius)
|
1 (Bar) Ambient temp. (Celsius)
|
||||||
0 0.0 0.70 0.81 13.1
|
0 0.0 0.70 0.81 13.1
|
||||||
0 1.2 0.70 0.71 13.1
|
0 1.2 0.70 0.71 13.1
|
||||||
|
@ -949,7 +949,7 @@ instance for the above example:
|
||||||
Time: column 1
|
Time: column 1
|
||||||
Depth: column 2
|
Depth: column 2
|
||||||
Temperature: column 5
|
Temperature: column 5
|
||||||
ppO2: column 4
|
pO₂: column 4
|
||||||
|
|
||||||
Armed with this information, importing the data into _Subsurface_ is
|
Armed with this information, importing the data into _Subsurface_ is
|
||||||
straightforward. Select
|
straightforward. Select
|
||||||
|
@ -1965,7 +1965,7 @@ specified in the _Preferences_ panel of _Subsurface_.
|
||||||
been activated on the left part of the *Dive Profile* panel.
|
been activated on the left part of the *Dive Profile* panel.
|
||||||
|
|
||||||
- Ensure that the appropriate button(s) for the display of the partial pressures of gases
|
- Ensure that the appropriate button(s) for the display of the partial pressures of gases
|
||||||
(PO2, PN2, PHe) have been activated on the left part of the *Dive Profile* panel.
|
(pO₂, pN₂, pHe) have been activated on the left part of the *Dive Profile* panel.
|
||||||
|
|
||||||
The dive profile is shown in conjunction with the relevant dive ceiling. The dive profile
|
The dive profile is shown in conjunction with the relevant dive ceiling. The dive profile
|
||||||
should not closely approach the calculated ceiling. The partial gas pressures selected for
|
should not closely approach the calculated ceiling. The partial gas pressures selected for
|
||||||
|
|
|
@ -866,7 +866,7 @@ a un registro por línea. Los archivos CSV pueden abrirse con cualquier editor d
|
||||||
texto. A continuación un ejemplo muy simplificado y acortado de un archivo CSV
|
texto. A continuación un ejemplo muy simplificado y acortado de un archivo CSV
|
||||||
de un rebreather aPD:
|
de un rebreather aPD:
|
||||||
|
|
||||||
Dive Time (s) Depth (m) PPO2 - Setpoint (Bar) PPO2 - C1 ...
|
Dive Time (s) Depth (m) pO₂ - Setpoint (Bar) pO₂ - C1 ...
|
||||||
0 0.0 0.70 0.81 13.1
|
0 0.0 0.70 0.81 13.1
|
||||||
0 1.2 0.70 0.71 13.1
|
0 1.2 0.70 0.71 13.1
|
||||||
0 0.0 0.70 0.71 13.1
|
0 0.0 0.70 0.71 13.1
|
||||||
|
@ -900,7 +900,7 @@ ejemplo anterior:
|
||||||
Time: columna 1
|
Time: columna 1
|
||||||
Depth: columna 2
|
Depth: columna 2
|
||||||
Temperature: columna 5
|
Temperature: columna 5
|
||||||
ppO2: columna 4
|
pO₂: columna 4
|
||||||
|
|
||||||
Armado con esta información, importar en _Subsurface_ es muy fácil. Selecciona
|
Armado con esta información, importar en _Subsurface_ es muy fácil. Selecciona
|
||||||
_Importar→Importar CSV_ en el menú principal. Aparecerá el siguiente dialogo:
|
_Importar→Importar CSV_ en el menú principal. Aparecerá el siguiente dialogo:
|
||||||
|
|
|
@ -66,7 +66,7 @@ New in version 4.1 (compared to Subsurface 4.0.3):
|
||||||
Known issues:
|
Known issues:
|
||||||
|
|
||||||
- (Windows specific) Many Windows fonts don't support specific characters,
|
- (Windows specific) Many Windows fonts don't support specific characters,
|
||||||
specifically subscript "2" (eg in pO2). New installations of Subsurface
|
specifically subscript "2" (eg in pO₂). New installations of Subsurface
|
||||||
will automatically pick a font that contains this character, but if you
|
will automatically pick a font that contains this character, but if you
|
||||||
had Subsurface installed on a specific system before, it likely has
|
had Subsurface installed on a specific system before, it likely has
|
||||||
saved the previous font in its settings. In that case the best solution
|
saved the previous font in its settings. In that case the best solution
|
||||||
|
@ -192,16 +192,16 @@ New in version 3.1 (compared to Subsurface 3.0.2):
|
||||||
New in version 3.0.2 (compared to Subsurface 3.0.1):
|
New in version 3.0.2 (compared to Subsurface 3.0.1):
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
This update was mainly triggered by a bug in the handling of pO2
|
This update was mainly triggered by a bug in the handling of pO₂
|
||||||
values read from CCR / rebreather dive computers. This bug can lead to
|
values read from CCR / rebreather dive computers. This bug can lead to
|
||||||
incorrect data being stored in the Subsurface XML file. Installing
|
incorrect data being stored in the Subsurface XML file. Installing
|
||||||
Subsurface 3.0.2 and re-downloading the dives will correct the
|
Subsurface 3.0.2 and re-downloading the dives will correct the
|
||||||
incorrect data. In order to re-download the dives connect your dive
|
incorrect data. In order to re-download the dives connect your dive
|
||||||
computer (this should only affect people with certain tec dive
|
computer (this should only affect people with certain tec dive
|
||||||
computers like the Shearwater Petrel or Predator that store pO2 values
|
computers like the Shearwater Petrel or Predator that store pO₂ values
|
||||||
read from a pO2 sensor in their dive log), open the download dialog,
|
read from a pO₂ sensor in their dive log), open the download dialog,
|
||||||
check the box "Force download of all dives" and download your
|
check the box "Force download of all dives" and download your
|
||||||
dives. After you save your data file the correct pO2 data should be
|
dives. After you save your data file the correct pO₂ data should be
|
||||||
stored in the samples.
|
stored in the samples.
|
||||||
|
|
||||||
If you are using one of those dive computers, have saved data files
|
If you are using one of those dive computers, have saved data files
|
||||||
|
@ -268,7 +268,7 @@ New in version 3.0 (compared to Subsurface 2.1):
|
||||||
- TriMix support
|
- TriMix support
|
||||||
- CCR support (fixed or variable setpoint, on dive computers that support
|
- CCR support (fixed or variable setpoint, on dive computers that support
|
||||||
this)
|
this)
|
||||||
- Optional pO2, pN2 and pHe graphs
|
- Optional pO₂, pN₂ and pHe graphs
|
||||||
- CNS tracking for supported divecomputers
|
- CNS tracking for supported divecomputers
|
||||||
- Lots of bug fixes
|
- Lots of bug fixes
|
||||||
|
|
||||||
|
|
24
deco.c
24
deco.c
|
@ -177,8 +177,8 @@ double add_segment(double pressure, const struct gasmix *gasmix, int period_in_s
|
||||||
{
|
{
|
||||||
int ci;
|
int ci;
|
||||||
int fo2 = get_o2(gasmix), fhe = get_he(gasmix);
|
int fo2 = get_o2(gasmix), fhe = get_he(gasmix);
|
||||||
double ppn2 = (pressure - WV_PRESSURE) * (1000 - fo2 - fhe) / 1000.0;
|
double pn2 = (pressure - WV_PRESSURE) * (1000 - fo2 - fhe) / 1000.0;
|
||||||
double pphe = (pressure - WV_PRESSURE) * fhe / 1000.0;
|
double phe = (pressure - WV_PRESSURE) * fhe / 1000.0;
|
||||||
|
|
||||||
if (buehlmann_config.gf_low_at_maxdepth && pressure > gf_low_pressure_this_dive)
|
if (buehlmann_config.gf_low_at_maxdepth && pressure > gf_low_pressure_this_dive)
|
||||||
gf_low_pressure_this_dive = pressure;
|
gf_low_pressure_this_dive = pressure;
|
||||||
|
@ -188,24 +188,24 @@ double add_segment(double pressure, const struct gasmix *gasmix, int period_in_s
|
||||||
rel_o2_amb = ccpo2 / pressure / 1000;
|
rel_o2_amb = ccpo2 / pressure / 1000;
|
||||||
f_dilutent = (1 - rel_o2_amb) / (1 - fo2 / 1000.0);
|
f_dilutent = (1 - rel_o2_amb) / (1 - fo2 / 1000.0);
|
||||||
if (f_dilutent < 0) { /* setpoint is higher than ambient pressure -> pure O2 */
|
if (f_dilutent < 0) { /* setpoint is higher than ambient pressure -> pure O2 */
|
||||||
ppn2 = 0.0;
|
pn2 = 0.0;
|
||||||
pphe = 0.0;
|
phe = 0.0;
|
||||||
} else if (f_dilutent < 1.0) {
|
} else if (f_dilutent < 1.0) {
|
||||||
ppn2 *= f_dilutent;
|
pn2 *= f_dilutent;
|
||||||
pphe *= f_dilutent;
|
phe *= f_dilutent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ci = 0; ci < 16; ci++) {
|
for (ci = 0; ci < 16; ci++) {
|
||||||
double ppn2_oversat = ppn2 - tissue_n2_sat[ci];
|
double pn2_oversat = pn2 - tissue_n2_sat[ci];
|
||||||
double pphe_oversat = pphe - tissue_he_sat[ci];
|
double phe_oversat = phe - tissue_he_sat[ci];
|
||||||
double n2_f = n2_factor(period_in_seconds, ci);
|
double n2_f = n2_factor(period_in_seconds, ci);
|
||||||
double he_f = he_factor(period_in_seconds, ci);
|
double he_f = he_factor(period_in_seconds, ci);
|
||||||
double n2_satmult = ppn2_oversat > 0 ? buehlmann_config.satmult : buehlmann_config.desatmult;
|
double n2_satmult = pn2_oversat > 0 ? buehlmann_config.satmult : buehlmann_config.desatmult;
|
||||||
double he_satmult = pphe_oversat > 0 ? buehlmann_config.satmult : buehlmann_config.desatmult;
|
double he_satmult = phe_oversat > 0 ? buehlmann_config.satmult : buehlmann_config.desatmult;
|
||||||
|
|
||||||
tissue_n2_sat[ci] += n2_satmult * ppn2_oversat * n2_f;
|
tissue_n2_sat[ci] += n2_satmult * pn2_oversat * n2_f;
|
||||||
tissue_he_sat[ci] += he_satmult * pphe_oversat * he_f;
|
tissue_he_sat[ci] += he_satmult * phe_oversat * he_f;
|
||||||
}
|
}
|
||||||
return tissue_tolerance_calc(dive);
|
return tissue_tolerance_calc(dive);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1727,7 +1727,7 @@ extern int dm4_events(void *handle, int columns, char **data, char **column)
|
||||||
cur_event.name = strdup("OLF");
|
cur_event.name = strdup("OLF");
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
/* 12 High ppO2 */
|
/* 12 High pO₂ */
|
||||||
cur_event.name = strdup("PO2");
|
cur_event.name = strdup("PO2");
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
|
|
|
@ -116,14 +116,14 @@ int get_gasidx(struct dive *dive, struct gasmix *mix)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
double interpolate_transition(struct dive *dive, int t0, int t1, int d0, int d1, const struct gasmix *gasmix, int ppo2)
|
double interpolate_transition(struct dive *dive, int t0, int t1, int d0, int d1, const struct gasmix *gasmix, int po2)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
double tissue_tolerance = 0.0;
|
double tissue_tolerance = 0.0;
|
||||||
|
|
||||||
for (j = t0; j < t1; j++) {
|
for (j = t0; j < t1; j++) {
|
||||||
int depth = interpolate(d0, d1, j - t0, t1 - t0);
|
int depth = interpolate(d0, d1, j - t0, t1 - t0);
|
||||||
tissue_tolerance = add_segment(depth_to_mbar(depth, dive) / 1000.0, gasmix, 1, ppo2, dive);
|
tissue_tolerance = add_segment(depth_to_mbar(depth, dive) / 1000.0, gasmix, 1, po2, dive);
|
||||||
}
|
}
|
||||||
return tissue_tolerance;
|
return tissue_tolerance;
|
||||||
}
|
}
|
||||||
|
|
2
pref.h
2
pref.h
|
@ -23,7 +23,7 @@ struct preferences {
|
||||||
double font_size;
|
double font_size;
|
||||||
partial_pressure_graphs_t pp_graphs;
|
partial_pressure_graphs_t pp_graphs;
|
||||||
short mod;
|
short mod;
|
||||||
double modppO2;
|
double modpO2;
|
||||||
short ead;
|
short ead;
|
||||||
short dcceiling;
|
short dcceiling;
|
||||||
short redceiling;
|
short redceiling;
|
||||||
|
|
10
profile.c
10
profile.c
|
@ -1141,7 +1141,7 @@ static void calculate_gas_information_new(struct dive *dive, struct plot_info *p
|
||||||
fhe = get_he(&dive->cylinder[cylinderindex].gasmix);
|
fhe = get_he(&dive->cylinder[cylinderindex].gasmix);
|
||||||
|
|
||||||
if (entry->po2) {
|
if (entry->po2) {
|
||||||
/* we have an O2 partial pressure in the sample - so this
|
/* we have an O₂ partial pressure in the sample - so this
|
||||||
* is likely a CC dive... use that instead of the value
|
* is likely a CC dive... use that instead of the value
|
||||||
* from the cylinder info */
|
* from the cylinder info */
|
||||||
if (entry->po2 >= amb_pressure || fo2 == 1000) {
|
if (entry->po2 >= amb_pressure || fo2 == 1000) {
|
||||||
|
@ -1160,10 +1160,10 @@ static void calculate_gas_information_new(struct dive *dive, struct plot_info *p
|
||||||
|
|
||||||
/* Calculate MOD, EAD, END and EADD based on partial pressures calculated before
|
/* Calculate MOD, EAD, END and EADD based on partial pressures calculated before
|
||||||
* so there is no difference in calculating between OC and CC
|
* so there is no difference in calculating between OC and CC
|
||||||
* END takes O2 + N2 (air) into account ("Narcotic" for trimix dives)
|
* END takes O₂ + N₂ (air) into account ("Narcotic" for trimix dives)
|
||||||
* EAD just uses N2 ("Air" for nitrox dives) */
|
* EAD just uses N₂ ("Air" for nitrox dives) */
|
||||||
pressure_t modppO2 = { .mbar = (int) (prefs.modppO2 * 1000) };
|
pressure_t modpO2 = { .mbar = (int) (prefs.modpO2 * 1000) };
|
||||||
entry->mod = (double) gas_mod(&dive->cylinder[cylinderindex].gasmix, modppO2).mm;
|
entry->mod = (double) gas_mod(&dive->cylinder[cylinderindex].gasmix, modpO2).mm;
|
||||||
entry->end = (entry->depth + 10000) * (1000 - fhe) / 1000.0 - 10000;
|
entry->end = (entry->depth + 10000) * (1000 - fhe) / 1000.0 - 10000;
|
||||||
entry->ead = (entry->depth + 10000) * (1000 - fo2 - fhe) / (double)N2_IN_AIR - 10000;
|
entry->ead = (entry->depth + 10000) * (1000 - fo2 - fhe) / (double)N2_IN_AIR - 10000;
|
||||||
entry->eadd = (entry->depth + 10000) *
|
entry->eadd = (entry->depth + 10000) *
|
||||||
|
|
|
@ -600,11 +600,11 @@ bool DivePlannerPointsModel::addGas(struct gasmix mix)
|
||||||
if (cylinder_nodata(cyl)) {
|
if (cylinder_nodata(cyl)) {
|
||||||
fill_default_cylinder(cyl);
|
fill_default_cylinder(cyl);
|
||||||
cyl->gasmix = mix;
|
cyl->gasmix = mix;
|
||||||
/* The depth to change to that gas is given by the depth where its pO2 is 1.6 bar.
|
/* 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. */
|
* The user should be able to change this depth manually. */
|
||||||
pressure_t modppO2;
|
pressure_t modpO2;
|
||||||
modppO2.mbar = 1600;
|
modpO2.mbar = 1600;
|
||||||
cyl->depth = gas_mod(&mix, modppO2);
|
cyl->depth = gas_mod(&mix, modpO2);
|
||||||
CylindersModel::instance()->setDive(stagingDive);
|
CylindersModel::instance()->setDive(stagingDive);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -249,9 +249,9 @@ bool CylindersModel::setData(const QModelIndex &index, const QVariant &value, in
|
||||||
case O2:
|
case O2:
|
||||||
if (CHANGED()) {
|
if (CHANGED()) {
|
||||||
cyl->gasmix.o2 = string_to_fraction(vString.toUtf8().data());
|
cyl->gasmix.o2 = string_to_fraction(vString.toUtf8().data());
|
||||||
pressure_t modppO2;
|
pressure_t modpO2;
|
||||||
modppO2.mbar = 1600;
|
modpO2.mbar = 1600;
|
||||||
cyl->depth = gas_mod(&cyl->gasmix, modppO2);
|
cyl->depth = gas_mod(&cyl->gasmix, modpO2);
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -65,14 +65,14 @@
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QLabel" name="label_6">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string> bottom ppO2</string>
|
<string> bottom pO₂</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="label_7">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>deco ppO2</string>
|
<string>deco pO₂</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -54,7 +54,7 @@ void PreferencesDialog::setUiFromPrefs()
|
||||||
ui.pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
|
ui.pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
|
||||||
ui.po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
|
ui.po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
|
||||||
ui.pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
|
ui.pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
|
||||||
ui.maxppo2->setValue(prefs.modppO2);
|
ui.maxpo2->setValue(prefs.modpO2);
|
||||||
ui.red_ceiling->setChecked(prefs.redceiling);
|
ui.red_ceiling->setChecked(prefs.redceiling);
|
||||||
ui.units_group->setEnabled(ui.personalize->isChecked());
|
ui.units_group->setEnabled(ui.personalize->isChecked());
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ void PreferencesDialog::syncSettings()
|
||||||
s.setValue("phethreshold", ui.pheThreshold->value());
|
s.setValue("phethreshold", ui.pheThreshold->value());
|
||||||
s.setValue("po2threshold", ui.po2Threshold->value());
|
s.setValue("po2threshold", ui.po2Threshold->value());
|
||||||
s.setValue("pn2threshold", ui.pn2Threshold->value());
|
s.setValue("pn2threshold", ui.pn2Threshold->value());
|
||||||
s.setValue("modppO2", ui.maxppo2->value());
|
s.setValue("modpO2", ui.maxpo2->value());
|
||||||
SB("redceiling", ui.red_ceiling);
|
SB("redceiling", ui.red_ceiling);
|
||||||
s.setValue("gflow", ui.gflow->value());
|
s.setValue("gflow", ui.gflow->value());
|
||||||
s.setValue("gfhigh", ui.gfhigh->value());
|
s.setValue("gfhigh", ui.gfhigh->value());
|
||||||
|
@ -280,7 +280,7 @@ void PreferencesDialog::loadSettings()
|
||||||
GET_DOUBLE("pn2threshold", pp_graphs.pn2_threshold);
|
GET_DOUBLE("pn2threshold", pp_graphs.pn2_threshold);
|
||||||
GET_DOUBLE("phethreshold", pp_graphs.phe_threshold);
|
GET_DOUBLE("phethreshold", pp_graphs.phe_threshold);
|
||||||
GET_BOOL("mod", mod);
|
GET_BOOL("mod", mod);
|
||||||
GET_DOUBLE("modppO2", modppO2);
|
GET_DOUBLE("modpO2", modpO2);
|
||||||
GET_BOOL("ead", ead);
|
GET_BOOL("ead", ead);
|
||||||
GET_BOOL("redceiling", redceiling);
|
GET_BOOL("redceiling", redceiling);
|
||||||
GET_BOOL("dcceiling", dcceiling);
|
GET_BOOL("dcceiling", dcceiling);
|
||||||
|
|
|
@ -633,12 +633,12 @@
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>max ppO₂ when showing MOD</string>
|
<string>max pO₂ when showing MOD</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDoubleSpinBox" name="maxppo2">
|
<widget class="QDoubleSpinBox" name="maxpo2">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -92,7 +92,7 @@ void DiveEventItem::setupToolTipString()
|
||||||
}
|
}
|
||||||
} else if (type == SAMPLE_EVENT_PO2 && name == "SP change") {
|
} else if (type == SAMPLE_EVENT_PO2 && name == "SP change") {
|
||||||
// this is a bad idea - we are abusing an existing event type that is supposed to
|
// this is a bad idea - we are abusing an existing event type that is supposed to
|
||||||
// warn of high or low PO2 and are turning it into a set point change event
|
// warn of high or low pO₂ and are turning it into a set point change event
|
||||||
name += "\n" + tr("Bailing out to OC");
|
name += "\n" + tr("Bailing out to OC");
|
||||||
} else {
|
} else {
|
||||||
name += internalEvent->flags == SAMPLE_FLAGS_BEGIN ? tr(" begin", "Starts with space!") :
|
name += internalEvent->flags == SAMPLE_FLAGS_BEGIN ? tr(" begin", "Starts with space!") :
|
||||||
|
|
|
@ -112,11 +112,11 @@ QVariant DivePlotDataModel::headerData(int section, Qt::Orientation orientation,
|
||||||
case SAC:
|
case SAC:
|
||||||
return tr("SAC");
|
return tr("SAC");
|
||||||
case PN2:
|
case PN2:
|
||||||
return tr("PN2");
|
return tr("pN₂");
|
||||||
case PHE:
|
case PHE:
|
||||||
return tr("PHE");
|
return tr("pHe");
|
||||||
case PO2:
|
case PO2:
|
||||||
return tr("PO2");
|
return tr("pO₂");
|
||||||
}
|
}
|
||||||
if (role == Qt::DisplayRole && section >= TISSUE_1 && section <= TISSUE_16) {
|
if (role == Qt::DisplayRole && section >= TISSUE_1 && section <= TISSUE_16) {
|
||||||
return QString("Ceiling: %1").arg(section - TISSUE_1);
|
return QString("Ceiling: %1").arg(section - TISSUE_1);
|
||||||
|
|
|
@ -33,9 +33,9 @@ static void put_cylinder_HTML(struct membuffer *b, struct dive *dive)
|
||||||
put_pressure(b, cylinder->end, "\"EPressure\":\"", " bar\",");
|
put_pressure(b, cylinder->end, "\"EPressure\":\"", " bar\",");
|
||||||
|
|
||||||
if (cylinder->gasmix.o2.permille) {
|
if (cylinder->gasmix.o2.permille) {
|
||||||
put_format(b, "\"O2\":\"%u.%u%%\",", FRACTION(cylinder->gasmix.o2.permille, 10));
|
put_format(b, "\"O₂\":\"%u.%u%%\",", FRACTION(cylinder->gasmix.o2.permille, 10));
|
||||||
} else {
|
} else {
|
||||||
write_attribute(b, "O2", "--");
|
write_attribute(b, "O₂", "--");
|
||||||
}
|
}
|
||||||
put_string(b, "},");
|
put_string(b, "},");
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ struct preferences default_prefs = {
|
||||||
.phe_threshold = 13.0,
|
.phe_threshold = 13.0,
|
||||||
},
|
},
|
||||||
.mod = false,
|
.mod = false,
|
||||||
.modppO2 = 1.6,
|
.modpO2 = 1.6,
|
||||||
.ead = false,
|
.ead = false,
|
||||||
.hrgraph = true,
|
.hrgraph = true,
|
||||||
.dcceiling = true,
|
.dcceiling = true,
|
||||||
|
|
5
terms
5
terms
|
@ -18,9 +18,8 @@ CNS Central Nervous System Oxygen Toxicity - a
|
||||||
|
|
||||||
maxCNS the highest CNS value during a dive
|
maxCNS the highest CNS value during a dive
|
||||||
|
|
||||||
PO2, PN2, PHe These are all partial pressures of the three
|
pO₂, pN₂, pHe These are all partial pressures of the three
|
||||||
PO₂, PN₂ gases Oxygen (O2 or O₂), Nitrogen (N2 or N₂)
|
gases Oxygen (O₂), Nitrogen (N₂) and Helium (He).
|
||||||
and Helium (He).
|
|
||||||
|
|
||||||
O₂%, He% The fraction of Oxygen and Helium in a gas.
|
O₂%, He% The fraction of Oxygen and Helium in a gas.
|
||||||
The partial pressure is therefore the pressure
|
The partial pressure is therefore the pressure
|
||||||
|
|
6
uemis.c
6
uemis.c
|
@ -200,12 +200,12 @@ static void uemis_event(struct dive *dive, struct divecomputer *dc, struct sampl
|
||||||
if (flags[1] & 0x06) /* both bits 1 and 2 are a warning */
|
if (flags[1] & 0x06) /* both bits 1 and 2 are a warning */
|
||||||
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "Speed Warning"));
|
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "Speed Warning"));
|
||||||
if (flags[1] & 0x10)
|
if (flags[1] & 0x10)
|
||||||
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "PO2 Green Warning"));
|
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "pO₂ Green Warning"));
|
||||||
#endif
|
#endif
|
||||||
if (flags[1] & 0x20)
|
if (flags[1] & 0x20)
|
||||||
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "PO2 Ascend Warning"));
|
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "pO₂ Ascend Warning"));
|
||||||
if (flags[1] & 0x40)
|
if (flags[1] & 0x40)
|
||||||
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "PO2 Ascend Alarm"));
|
add_event(dc, sample->time.seconds, 0, 0, 0, QT_TRANSLATE_NOOP("gettextFromC", "pO₂ Ascend Alarm"));
|
||||||
/* flags[2] reflects the deco / time bar
|
/* flags[2] reflects the deco / time bar
|
||||||
* flags[3] reflects more display details on deco and pO2 */
|
* flags[3] reflects more display details on deco and pO2 */
|
||||||
if (flags[4] & 0x01)
|
if (flags[4] & 0x01)
|
||||||
|
|
Loading…
Add table
Reference in a new issue