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:
Willem Ferguson 2018-03-14 17:13:37 +02:00 committed by Lubomir I. Ivanov
parent e9fd4cb7dc
commit 81a812539c
14 changed files with 107 additions and 52 deletions

View file

@ -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());

View file

@ -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>