diff options
author | Willem Ferguson <willemferguson@zoology.up.ac.za> | 2018-03-14 17:13:37 +0200 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2018-04-28 20:11:22 +0300 |
commit | 81a812539c95f2e709995d446065803c09e9136a (patch) | |
tree | e75422bbd34a909e3f897e3200e6624ad83e6b9a /core/profile.c | |
parent | e9fd4cb7dca13c01f85ad63b667100ee15d7dc6d (diff) | |
download | subsurface-81a812539c95f2e709995d446065803c09e9136a.tar.gz |
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>
Diffstat (limited to 'core/profile.c')
-rw-r--r-- | core/profile.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/core/profile.c b/core/profile.c index 835e68dcc..c5105c4f5 100644 --- a/core/profile.c +++ b/core/profile.c @@ -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 |