summaryrefslogtreecommitdiffstats
path: root/qt-ui/profile/diveplotdatamodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/profile/diveplotdatamodel.cpp')
-rw-r--r--qt-ui/profile/diveplotdatamodel.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/qt-ui/profile/diveplotdatamodel.cpp b/qt-ui/profile/diveplotdatamodel.cpp
index 9c0edc079..cdf17fe46 100644
--- a/qt-ui/profile/diveplotdatamodel.cpp
+++ b/qt-ui/profile/diveplotdatamodel.cpp
@@ -52,6 +52,12 @@ QVariant DivePlotDataModel::data(const QModelIndex &index, int role) const
return item.pressures.o2;
case O2SETPOINT:
return item.o2setpoint.mbar / 1000.0;
+ case CCRSENSOR1:
+ return item.o2sensor[0].mbar / 1000.0;
+ case CCRSENSOR2:
+ return item.o2sensor[1].mbar / 1000.0;
+ case CCRSENSOR3:
+ return item.o2sensor[2].mbar / 1000.0;
case HEARTBEAT:
return item.heartbeat;
case AMBPRESSURE:
@@ -129,6 +135,12 @@ QVariant DivePlotDataModel::headerData(int section, Qt::Orientation orientation,
return tr("pO₂");
case O2SETPOINT:
return tr("Setpoint");
+ case CCRSENSOR1:
+ return tr("Sensor1");
+ case CCRSENSOR2:
+ return tr("Sensor2");
+ case CCRSENSOR3:
+ return tr("Sensor3");
case AMBPRESSURE:
return tr("Ambient pressure");
case HEARTBEAT:
@@ -185,9 +197,23 @@ unsigned int DivePlotDataModel::dcShown() const
return ret; \
}
+#define MAX_SENSOR_GAS_FUNC(GASFUNC) \
+ double DivePlotDataModel::GASFUNC() /* CCR: This function finds the largest measured po2 value */ \
+ { /* by scanning the readings from the three individual o2 sensors. */ \
+ double ret = -1; /* This is used for scaling the Y-axis for partial pressures */ \
+ for (int s = 0; s < 3; s++) { /* when displaying the graphs for individual o2 sensors */ \
+ for (int i = 0, count = rowCount(); i < count; i++) { /* POTENTIAL PROBLEM: the '3' (no_sensors) is hard-coded here */\
+ if (pInfo.entry[i].o2sensor[s].mbar > ret) \
+ ret = pInfo.entry[i].o2sensor[s].mbar; \
+ } \
+ } \
+ return (ret / 1000.0); /* mbar -> bar conversion */ \
+ }
+
MAX_PPGAS_FUNC(he, pheMax);
MAX_PPGAS_FUNC(n2, pn2Max);
MAX_PPGAS_FUNC(o2, po2Max);
+MAX_SENSOR_GAS_FUNC(CCRMax);
void DivePlotDataModel::emitDataChanged()
{