mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Plot OC-pO2 graph for SCR dives
This commit allows plotting the OC-equivalent pO2 graph for PSCR dives. This happens in both the cases where there is no external O2-monitoring AND when there is external pO2 monitoring. The calculations are only done for PSCR dives and is achieved as follows: 1) Within plot-info create a pressure-t called OC_pO2 in profile.h and populate this variable with the open-circuit pO2 values in profile.c. 2) Create a new partialPressureGasItem ocpo2GasItem in profilewidget2.h and, in profilewidget2.cpp, initialise it to read the plot-info OC_pO2 values and enable its display by using the setVisible method. The diveplotdatamodel was also touched in order to achieve this. 3) Create a pref button that controls the display of OC-pO2 for SCR dives 4) Change the colour of the OC-pO2 grpah to orange 5) Change the connection of the crr_OC_pO2 signal to be appropriate 6) rename the OC_pO2 attribute to scr_OC-pO2 Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
This commit is contained in:
parent
e9fd4cb7dc
commit
81a812539c
14 changed files with 107 additions and 52 deletions
|
@ -32,6 +32,8 @@ void fill_profile_color()
|
|||
profile_color[CCRSENSOR1] = COLOR(TUNDORA1_MED_TRANS, BLACK1_LOW_TRANS, TUNDORA1_MED_TRANS);
|
||||
profile_color[CCRSENSOR2] = COLOR(ROYALBLUE2_LOW_TRANS, BLACK1_LOW_TRANS, ROYALBLUE2_LOW_TRANS);
|
||||
profile_color[CCRSENSOR3] = COLOR(PEANUT, BLACK1_LOW_TRANS, PEANUT);
|
||||
profile_color[SCR_OCPO2] = COLOR(PIRATEGOLD1_MED_TRANS, BLACK1_LOW_TRANS, PIRATEGOLD1_MED_TRANS);
|
||||
|
||||
profile_color[PP_LINES] = COLOR(BLACK1_HIGH_TRANS, BLACK1_LOW_TRANS, BLACK1_HIGH_TRANS);
|
||||
|
||||
profile_color[TEXT_BACKGROUND] = COLOR(CONCRETE1_LOWER_TRANS, WHITE1, CONCRETE1_LOWER_TRANS);
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#define PERSIANRED1 QColor::fromRgbF(0.8, 0.2, 0.2, 1)
|
||||
#define TUSCANY1 QColor::fromRgbF(0.8, 0.4, 0.2, 1)
|
||||
#define PIRATEGOLD1 QColor::fromRgbF(0.8, 0.5, 0.0, 1)
|
||||
#define PIRATEGOLD1_MED_TRANS QColor::fromRgbF(0.8, 0.5, 0.0, 0.75)
|
||||
#define HOKEYPOKEY1 QColor::fromRgbF(0.8, 0.6, 0.2, 1)
|
||||
#define CINNABAR1 QColor::fromRgbF(0.9, 0.3, 0.2, 1)
|
||||
#define REDORANGE1 QColor::fromRgbF(1.0, 0.2, 0.2, 1)
|
||||
|
@ -102,6 +103,7 @@ typedef enum {
|
|||
CCRSENSOR1,
|
||||
CCRSENSOR2,
|
||||
CCRSENSOR3,
|
||||
SCR_OCPO2,
|
||||
PP_LINES,
|
||||
|
||||
/* Other colors */
|
||||
|
|
|
@ -87,6 +87,7 @@ struct preferences {
|
|||
bool gf_low_at_maxdepth;
|
||||
bool show_ccr_setpoint;
|
||||
bool show_ccr_sensors;
|
||||
bool show_scr_ocpo2;
|
||||
bool display_invalid_dives;
|
||||
short unit_system;
|
||||
struct units units;
|
||||
|
|
|
@ -1214,6 +1214,8 @@ static void calculate_gas_information_new(struct dive *dive, struct divecomputer
|
|||
fill_pressures(&entry->pressures, amb_pressure, gasmix, entry->o2pressure.mbar / 1000.0, dive->dc.divemode);
|
||||
fn2 = (int)(1000.0 * entry->pressures.n2 / amb_pressure);
|
||||
fhe = (int)(1000.0 * entry->pressures.he / amb_pressure);
|
||||
if (dc->divemode == PSCR) // OC pO2 is calulated for PSCR with or without external PO2 monitoring.
|
||||
entry->scr_OC_pO2.mbar = (int) depth_to_mbar(entry->depth, dive) * get_o2(get_gasmix(dive, dc, entry->sec, &ev, gasmix)) / 1000;
|
||||
|
||||
/* Calculate MOD, EAD, END and EADD based on partial pressures calculated before
|
||||
* so there is no difference in calculating between OC and CC
|
||||
|
|
|
@ -46,6 +46,7 @@ struct plot_data {
|
|||
pressure_t o2pressure; // for rebreathers, this is consensus measured po2, or setpoint otherwise. 0 for OC.
|
||||
pressure_t o2sensor[3]; //for rebreathers with up to 3 PO2 sensors
|
||||
pressure_t o2setpoint;
|
||||
pressure_t scr_OC_pO2;
|
||||
double mod, ead, end, eadd;
|
||||
velocity_t velocity;
|
||||
int speed;
|
||||
|
|
|
@ -392,6 +392,11 @@ bool TechnicalDetailsSettings::rulerGraph() const
|
|||
return prefs.rulergraph;
|
||||
}
|
||||
|
||||
bool TechnicalDetailsSettings::showSCROCpO2() const
|
||||
{
|
||||
return prefs.show_scr_ocpo2;
|
||||
}
|
||||
|
||||
bool TechnicalDetailsSettings::showCCRSetpoint() const
|
||||
{
|
||||
return prefs.show_ccr_setpoint;
|
||||
|
@ -667,6 +672,18 @@ void TechnicalDetailsSettings::setShowCCRSetpoint(bool value)
|
|||
emit showCCRSetpointChanged(value);
|
||||
}
|
||||
|
||||
void TechnicalDetailsSettings::setShowSCROCpO2(bool value)
|
||||
{
|
||||
if (value == prefs.show_scr_ocpo2)
|
||||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("show_scr_ocpo2", value);
|
||||
prefs.show_scr_ocpo2 = value;
|
||||
emit showSCROCpO2Changed(value);
|
||||
}
|
||||
|
||||
void TechnicalDetailsSettings::setShowCCRSensors(bool value)
|
||||
{
|
||||
if (value == prefs.show_ccr_sensors)
|
||||
|
@ -2222,6 +2239,7 @@ void SettingsObjectWrapper::load()
|
|||
GET_BOOL("gf_low_at_maxdepth", gf_low_at_maxdepth);
|
||||
GET_BOOL("show_ccr_setpoint",show_ccr_setpoint);
|
||||
GET_BOOL("show_ccr_sensors",show_ccr_sensors);
|
||||
GET_BOOL("show_scr_ocpo2",show_scr_ocpo2);
|
||||
GET_BOOL("zoomed_plot", zoomed_plot);
|
||||
set_gf(prefs.gflow, prefs.gfhigh);
|
||||
set_vpmb_conservatism(prefs.vpmb_conservatism);
|
||||
|
|
|
@ -135,6 +135,7 @@ class TechnicalDetailsSettings : public QObject {
|
|||
Q_PROPERTY(bool rulergraph READ rulerGraph WRITE setRulerGraph NOTIFY rulerGraphChanged)
|
||||
Q_PROPERTY(bool show_ccr_setpoint READ showCCRSetpoint WRITE setShowCCRSetpoint NOTIFY showCCRSetpointChanged)
|
||||
Q_PROPERTY(bool show_ccr_sensors READ showCCRSensors WRITE setShowCCRSensors NOTIFY showCCRSensorsChanged)
|
||||
Q_PROPERTY(bool show_scr_ocpo2 READ showSCROCpO2 WRITE setShowSCROCpO2 NOTIFY showSCROCpO2Changed)
|
||||
Q_PROPERTY(bool zoomed_plot READ zoomedPlot WRITE setZoomedPlot NOTIFY zoomedPlotChanged)
|
||||
Q_PROPERTY(bool show_sac READ showSac WRITE setShowSac NOTIFY showSacChanged)
|
||||
Q_PROPERTY(bool display_unused_tanks READ displayUnusedTanks WRITE setDisplayUnusedTanks NOTIFY displayUnusedTanksChanged)
|
||||
|
@ -165,6 +166,7 @@ public:
|
|||
bool rulerGraph() const;
|
||||
bool showCCRSetpoint() const;
|
||||
bool showCCRSensors() const;
|
||||
bool showSCROCpO2() const;
|
||||
bool zoomedPlot() const;
|
||||
bool showSac() const;
|
||||
bool displayUnusedTanks() const;
|
||||
|
@ -193,6 +195,7 @@ public slots:
|
|||
void setRulerGraph(bool value);
|
||||
void setShowCCRSetpoint(bool value);
|
||||
void setShowCCRSensors(bool value);
|
||||
void setShowSCROCpO2(bool value);
|
||||
void setZoomedPlot(bool value);
|
||||
void setShowSac(bool value);
|
||||
void setDisplayUnusedTanks(bool value);
|
||||
|
@ -221,6 +224,7 @@ signals:
|
|||
void rulerGraphChanged(bool value);
|
||||
void showCCRSetpointChanged(bool value);
|
||||
void showCCRSensorsChanged(bool value);
|
||||
void showSCROCpO2Changed(bool value);
|
||||
void zoomedPlotChanged(bool value);
|
||||
void showSacChanged(bool value);
|
||||
void displayUnusedTanksChanged(bool value);
|
||||
|
|
|
@ -42,6 +42,7 @@ struct preferences default_prefs = {
|
|||
.gf_low_at_maxdepth = false,
|
||||
.show_ccr_setpoint = false,
|
||||
.show_ccr_sensors = false,
|
||||
.show_scr_ocpo2 = false,
|
||||
.font_size = -1,
|
||||
.display_invalid_dives = false,
|
||||
.show_sac = false,
|
||||
|
|
|
@ -40,6 +40,7 @@ void PreferencesGraph::refreshSettings()
|
|||
ui->vpmb_conservatism->setValue(prefs.vpmb_conservatism);
|
||||
ui->show_ccr_setpoint->setChecked(prefs.show_ccr_setpoint);
|
||||
ui->show_ccr_sensors->setChecked(prefs.show_ccr_sensors);
|
||||
ui->show_scr_ocpo2->setChecked(prefs.show_scr_ocpo2);
|
||||
ui->defaultSetpoint->setValue((double)prefs.defaultsetpoint / 1000.0);
|
||||
ui->psro2rate->setValue(prefs.o2consumption / 1000.0);
|
||||
ui->pscrfactor->setValue(lrint(1000.0 / prefs.pscr_ratio));
|
||||
|
@ -71,6 +72,7 @@ void PreferencesGraph::syncSettings()
|
|||
tech->setVpmbConservatism(ui->vpmb_conservatism->value());
|
||||
tech->setShowCCRSetpoint(ui->show_ccr_setpoint->isChecked());
|
||||
tech->setShowCCRSensors(ui->show_ccr_sensors->isChecked());
|
||||
tech->setShowSCROCpO2(ui->show_scr_ocpo2->isChecked());
|
||||
tech->setDisplayUnusedTanks(ui->display_unused_tanks->isChecked());
|
||||
tech->setShowAverageDepth(ui->show_average_depth->isChecked());
|
||||
tech->setShowIcd(ui->show_icd->isChecked());
|
||||
|
|
|
@ -158,18 +158,72 @@
|
|||
<item row="5" column="1" colspan="2">
|
||||
<widget class="QCheckBox" name="show_ccr_sensors">
|
||||
<property name="text">
|
||||
<string>Show individual O₂ sensor values when viewing pO₂</string>
|
||||
<string>Show O₂ sensor values when viewing pO₂</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="2">
|
||||
<widget class="QCheckBox" name="show_ccr_setpoint">
|
||||
<property name="text">
|
||||
<string>Show setpoints when viewing pO₂</string>
|
||||
<string>Show CCR setpoints when viewing pO₂</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="pSCR">
|
||||
<property name="text">
|
||||
<string>pSCR options:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLabel" name="MetabolicRate">
|
||||
<property name="text">
|
||||
<string>pSCR metabolic rate O₂</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QDoubleSpinBox" name="psro2rate">
|
||||
<property name="suffix">
|
||||
<string>ℓ/min</string>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="3">
|
||||
<widget class="QLabel" name="label_28">
|
||||
<property name="text">
|
||||
<string>Dilution ratio</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="4">
|
||||
<widget class="QSpinBox" name="pscrfactor">
|
||||
<property name="suffix">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string>1:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QCheckBox" name="show_scr_ocpo2">
|
||||
<property name="text">
|
||||
<string>Show equivalent OC pO₂ with pSCR pO₂</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QCheckBox" name="show_icd">
|
||||
<property name="text">
|
||||
<string>Show warnings for isobaric counterdiffusion</string>
|
||||
|
@ -195,16 +249,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="4">
|
||||
<widget class="QSpinBox" name="pscrfactor">
|
||||
<property name="suffix">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string>1:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QRadioButton" name="buehlmann">
|
||||
<property name="text">
|
||||
|
@ -225,16 +269,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QLabel" name="label_28">
|
||||
<property name="text">
|
||||
<string>Dilution ratio</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QSpinBox" name="gflow">
|
||||
<property name="suffix">
|
||||
|
@ -271,16 +305,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="MetabolicRate">
|
||||
<property name="text">
|
||||
<string>Metabolic rate O₂</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="red_ceiling">
|
||||
<property name="enabled">
|
||||
|
@ -291,16 +315,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QDoubleSpinBox" name="psro2rate">
|
||||
<property name="suffix">
|
||||
<string>ℓ/min</string>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QRadioButton" name="vpmb">
|
||||
<property name="text">
|
||||
|
@ -321,13 +335,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="pSCR">
|
||||
<property name="text">
|
||||
<string>pSCR options:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="label_GFlow">
|
||||
<property name="text">
|
||||
|
@ -386,16 +393,18 @@
|
|||
<tabstop>pheThreshold</tabstop>
|
||||
<tabstop>maxpo2</tabstop>
|
||||
<tabstop>defaultSetpoint</tabstop>
|
||||
<tabstop>show_ccr_setpoint</tabstop>
|
||||
<tabstop>show_ccr_sensors</tabstop>
|
||||
<tabstop>show_ccr_setpoint</tabstop>
|
||||
<tabstop>psro2rate</tabstop>
|
||||
<tabstop>pscrfactor</tabstop>
|
||||
<tabstop>show_scr_ocpo2</tabstop>
|
||||
<tabstop>show_icd</tabstop>
|
||||
<tabstop>red_ceiling</tabstop>
|
||||
<tabstop>vpmb</tabstop>
|
||||
<tabstop>vpmb_conservatism</tabstop>
|
||||
<tabstop>buehlmann</tabstop>
|
||||
<tabstop>gflow</tabstop>
|
||||
<tabstop>gfhigh</tabstop>
|
||||
<tabstop>psro2rate</tabstop>
|
||||
<tabstop>pscrfactor</tabstop>
|
||||
<tabstop>display_unused_tanks</tabstop>
|
||||
<tabstop>show_average_depth</tabstop>
|
||||
</tabstops>
|
||||
|
|
|
@ -109,6 +109,7 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
|
|||
ccrsensor1GasItem(new PartialPressureGasItem()),
|
||||
ccrsensor2GasItem(new PartialPressureGasItem()),
|
||||
ccrsensor3GasItem(new PartialPressureGasItem()),
|
||||
ocpo2GasItem(new PartialPressureGasItem()),
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
diveCeiling(new DiveCalculatedCeiling(this)),
|
||||
decoModelParameters(new DiveTextItem()),
|
||||
|
@ -198,6 +199,7 @@ void ProfileWidget2::addItemsToScene()
|
|||
scene()->addItem(ccrsensor1GasItem);
|
||||
scene()->addItem(ccrsensor2GasItem);
|
||||
scene()->addItem(ccrsensor3GasItem);
|
||||
scene()->addItem(ocpo2GasItem);
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
scene()->addItem(toolTipItem);
|
||||
scene()->addItem(diveCeiling);
|
||||
|
@ -315,6 +317,7 @@ void ProfileWidget2::setupItemOnScene()
|
|||
createPPGas(ccrsensor1GasItem, DivePlotDataModel::CCRSENSOR1, CCRSENSOR1, PO2_ALERT, &prefs.pp_graphs.po2_threshold_min, &prefs.pp_graphs.po2_threshold_max);
|
||||
createPPGas(ccrsensor2GasItem, DivePlotDataModel::CCRSENSOR2, CCRSENSOR2, PO2_ALERT, &prefs.pp_graphs.po2_threshold_min, &prefs.pp_graphs.po2_threshold_max);
|
||||
createPPGas(ccrsensor3GasItem, DivePlotDataModel::CCRSENSOR3, CCRSENSOR3, PO2_ALERT, &prefs.pp_graphs.po2_threshold_min, &prefs.pp_graphs.po2_threshold_max);
|
||||
createPPGas(ocpo2GasItem, DivePlotDataModel::SCR_OC_PO2, SCR_OCPO2, PO2_ALERT, &prefs.pp_graphs.po2_threshold_min, &prefs.pp_graphs.po2_threshold_max);
|
||||
|
||||
#undef CREATE_PP_GAS
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
|
@ -327,6 +330,7 @@ void ProfileWidget2::setupItemOnScene()
|
|||
|
||||
//WARNING: The old code was broken, I'm not sure what should trigger the visibility of those graphs, since the old code didn't triggered them
|
||||
// because it was using a wrong settings.
|
||||
connect(SettingsObjectWrapper::instance()->techDetails, &TechnicalDetailsSettings::showSCROCpO2Changed, ocpo2GasItem, &PartialPressureGasItem::setVisible);
|
||||
connect(SettingsObjectWrapper::instance()->techDetails, &TechnicalDetailsSettings::showCCRSensorsChanged, ccrsensor1GasItem, &PartialPressureGasItem::setVisible);
|
||||
connect(SettingsObjectWrapper::instance()->techDetails, &TechnicalDetailsSettings::showCCRSensorsChanged, ccrsensor2GasItem, &PartialPressureGasItem::setVisible);
|
||||
connect(SettingsObjectWrapper::instance()->techDetails, &TechnicalDetailsSettings::showCCRSensorsChanged, ccrsensor3GasItem, &PartialPressureGasItem::setVisible);
|
||||
|
@ -598,6 +602,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
|
|||
ccrsensor1GasItem->setVisible(sensorflag);
|
||||
ccrsensor2GasItem->setVisible(sensorflag && (currentdc->no_o2sensors > 1));
|
||||
ccrsensor3GasItem->setVisible(sensorflag && (currentdc->no_o2sensors > 2));
|
||||
ocpo2GasItem->setVisible((currentdc->divemode == PSCR) && prefs.show_scr_ocpo2);
|
||||
|
||||
/* This struct holds all the data that's about to be plotted.
|
||||
* I'm not sure this is the best approach ( but since we are
|
||||
|
@ -705,6 +710,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
|
|||
ccrsensor1GasItem->setVisible(prefs.show_ccr_sensors);
|
||||
ccrsensor2GasItem->setVisible(prefs.show_ccr_sensors && (currentdc->no_o2sensors > 1));
|
||||
ccrsensor3GasItem->setVisible(prefs.show_ccr_sensors && (currentdc->no_o2sensors > 1));
|
||||
ocpo2GasItem->setVisible((currentdc->divemode == PSCR) && prefs.show_scr_ocpo2);
|
||||
temperatureItem->setVisible(false);
|
||||
} else {
|
||||
tankItem->setVisible(prefs.tankbar);
|
||||
|
@ -716,6 +722,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force)
|
|||
ccrsensor1GasItem->setVisible(false);
|
||||
ccrsensor2GasItem->setVisible(false);
|
||||
ccrsensor3GasItem->setVisible(false);
|
||||
ocpo2GasItem->setVisible(false);
|
||||
}
|
||||
#endif
|
||||
tankItem->setData(dataModel, &plotInfo, &displayed_dive);
|
||||
|
@ -1074,6 +1081,7 @@ void ProfileWidget2::setEmptyState()
|
|||
ccrsensor1GasItem->setVisible(false);
|
||||
ccrsensor2GasItem->setVisible(false);
|
||||
ccrsensor3GasItem->setVisible(false);
|
||||
ocpo2GasItem->setVisible(false);
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
toolTipItem->setVisible(false);
|
||||
diveCeiling->setVisible(false);
|
||||
|
@ -1193,6 +1201,7 @@ void ProfileWidget2::setProfileState()
|
|||
ccrsensor1GasItem->setVisible(sensorflag);
|
||||
ccrsensor2GasItem->setVisible(sensorflag && (current_dc->no_o2sensors > 1));
|
||||
ccrsensor3GasItem->setVisible(sensorflag && (current_dc->no_o2sensors > 2));
|
||||
ocpo2GasItem->setVisible((current_dc->divemode == PSCR) && prefs.show_scr_ocpo2);
|
||||
|
||||
heartBeatItem->setVisible(prefs.hrgraph);
|
||||
diveCeiling->setVisible(prefs.calcceiling);
|
||||
|
|
|
@ -202,6 +202,7 @@ private:
|
|||
PartialPressureGasItem *ccrsensor1GasItem;
|
||||
PartialPressureGasItem *ccrsensor2GasItem;
|
||||
PartialPressureGasItem *ccrsensor3GasItem;
|
||||
PartialPressureGasItem *ocpo2GasItem;
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
DiveCalculatedCeiling *diveCeiling;
|
||||
DiveTextItem *decoModelParameters;
|
||||
|
|
|
@ -63,6 +63,8 @@ QVariant DivePlotDataModel::data(const QModelIndex &index, int role) const
|
|||
return item.o2sensor[1].mbar / 1000.0;
|
||||
case CCRSENSOR3:
|
||||
return item.o2sensor[2].mbar / 1000.0;
|
||||
case SCR_OC_PO2:
|
||||
return item.scr_OC_pO2.mbar / 1000.0;
|
||||
case HEARTBEAT:
|
||||
return item.heartbeat;
|
||||
case AMBPRESSURE:
|
||||
|
|
|
@ -64,6 +64,7 @@ public:
|
|||
CCRSENSOR1,
|
||||
CCRSENSOR2,
|
||||
CCRSENSOR3,
|
||||
SCR_OC_PO2,
|
||||
HEARTBEAT,
|
||||
AMBPRESSURE,
|
||||
GFLINE,
|
||||
|
|
Loading…
Reference in a new issue