mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 14:40:28 +00:00
81a812539c
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>
98 lines
1.8 KiB
C++
98 lines
1.8 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVEPLOTDATAMODEL_H
|
|
#define DIVEPLOTDATAMODEL_H
|
|
|
|
#include <QAbstractTableModel>
|
|
|
|
#include "core/display.h"
|
|
#include "core/dive.h"
|
|
|
|
struct dive;
|
|
struct plot_data;
|
|
struct plot_info;
|
|
|
|
class DivePlotDataModel : public QAbstractTableModel {
|
|
Q_OBJECT
|
|
public:
|
|
enum {
|
|
DEPTH,
|
|
TIME,
|
|
PRESSURE,
|
|
TEMPERATURE,
|
|
USERENTERED,
|
|
COLOR,
|
|
SENSOR_PRESSURE,
|
|
INTERPOLATED_PRESSURE,
|
|
SAC,
|
|
CEILING,
|
|
TISSUE_1,
|
|
TISSUE_2,
|
|
TISSUE_3,
|
|
TISSUE_4,
|
|
TISSUE_5,
|
|
TISSUE_6,
|
|
TISSUE_7,
|
|
TISSUE_8,
|
|
TISSUE_9,
|
|
TISSUE_10,
|
|
TISSUE_11,
|
|
TISSUE_12,
|
|
TISSUE_13,
|
|
TISSUE_14,
|
|
TISSUE_15,
|
|
TISSUE_16,
|
|
PERCENTAGE_1,
|
|
PERCENTAGE_2,
|
|
PERCENTAGE_3,
|
|
PERCENTAGE_4,
|
|
PERCENTAGE_5,
|
|
PERCENTAGE_6,
|
|
PERCENTAGE_7,
|
|
PERCENTAGE_8,
|
|
PERCENTAGE_9,
|
|
PERCENTAGE_10,
|
|
PERCENTAGE_11,
|
|
PERCENTAGE_12,
|
|
PERCENTAGE_13,
|
|
PERCENTAGE_14,
|
|
PERCENTAGE_15,
|
|
PERCENTAGE_16,
|
|
PN2,
|
|
PHE,
|
|
PO2,
|
|
O2SETPOINT,
|
|
CCRSENSOR1,
|
|
CCRSENSOR2,
|
|
CCRSENSOR3,
|
|
SCR_OC_PO2,
|
|
HEARTBEAT,
|
|
AMBPRESSURE,
|
|
GFLINE,
|
|
INSTANT_MEANDEPTH,
|
|
COLUMNS
|
|
};
|
|
explicit DivePlotDataModel(QObject *parent = 0);
|
|
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
|
|
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
|
|
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
|
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
|
void clear();
|
|
void setDive(struct dive *d, const plot_info &pInfo);
|
|
const plot_info &data() const;
|
|
unsigned int dcShown() const;
|
|
double pheMax();
|
|
double pn2Max();
|
|
double po2Max();
|
|
void emitDataChanged();
|
|
#ifndef SUBSURFACE_MOBILE
|
|
void calculateDecompression();
|
|
#endif
|
|
|
|
private:
|
|
struct plot_info pInfo;
|
|
int diveId;
|
|
unsigned int dcNr;
|
|
struct deco_state plot_deco_state;
|
|
};
|
|
|
|
#endif // DIVEPLOTDATAMODEL_H
|