summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Anton Lundin <glance@acc.umu.se>2017-04-27 21:25:04 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-05-04 10:50:15 -0700
commitf14ad7f183f0422ad09c455212e1822bd7bdd3ee (patch)
treef724ed6b540829fb697f35333a8d8c946f2cdef6
parent5a4e1a55866ac943eecbd32c52583142d4e8921e (diff)
downloadsubsurface-f14ad7f183f0422ad09c455212e1822bd7bdd3ee.tar.gz
Implement OSTC4 specific settings
Signed-off-by: Anton Lundin <glance@acc.umu.se>
-rw-r--r--core/configuredivecomputerthreads.cpp33
-rw-r--r--core/devicedetails.cpp3
-rw-r--r--core/devicedetails.h3
-rw-r--r--desktop-widgets/configuredivecomputerdialog.cpp6
-rw-r--r--desktop-widgets/configuredivecomputerdialog.ui132
5 files changed, 142 insertions, 35 deletions
diff --git a/core/configuredivecomputerthreads.cpp b/core/configuredivecomputerthreads.cpp
index 7fdf84db0..39c3b5c63 100644
--- a/core/configuredivecomputerthreads.cpp
+++ b/core/configuredivecomputerthreads.cpp
@@ -30,6 +30,7 @@
#define OSTC3_AGF_LOW 0x27
#define OSTC3_AGF_HIGH 0x28
#define OSTC3_AGF_SELECTABLE 0x29
+#define OSTC4_VPM_CONSERVATISM 0x29
#define OSTC3_SATURATION 0x2A
#define OSTC3_DESATURATION 0x2B
#define OSTC3_LAST_DECO 0x2C
@@ -48,9 +49,11 @@
#define OSTC3_FLIP_SCREEN 0x39
#define OSTC3_LEFT_BUTTON_SENSIVITY 0x3A
#define OSTC3_RIGHT_BUTTON_SENSIVITY 0x3A
+#define OSTC4_BUTTON_SENSIVITY 0x3A
#define OSTC3_BOTTOM_GAS_CONSUMPTION 0x3C
#define OSTC3_DECO_GAS_CONSUMPTION 0x3D
#define OSTC3_MOD_WARNING 0x3E
+#define OSTC4_TRAVEL_GAS_CONSUMPTION 0x3E
#define OSTC3_DYNAMIC_ASCEND_RATE 0x3F
#define OSTC3_GRAPHICAL_SPEED_INDICATOR 0x40
#define OSTC3_ALWAYS_SHOW_PPO2 0x41
@@ -369,7 +372,7 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev
dc_status_t rc = DC_STATUS_SUCCESS;
dc_event_progress_t progress;
progress.current = 0;
- progress.maximum = 19;
+ progress.maximum = 23;
unsigned char hardware[1];
EMIT_PROGRESS();
@@ -572,12 +575,25 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev
READ_SETTING(OSTC3_DECO_TYPE, decoType);
READ_SETTING(OSTC3_AGF_HIGH, aGFHigh);
READ_SETTING(OSTC3_AGF_LOW, aGFLow);
+ READ_SETTING(OSTC4_VPM_CONSERVATISM, vpmConservatism);
READ_SETTING(OSTC3_SETPOINT_FALLBACK, setPointFallback);
+ READ_SETTING(OSTC4_BUTTON_SENSIVITY, buttonSensitivity);
READ_SETTING(OSTC3_BOTTOM_GAS_CONSUMPTION, bottomGasConsumption);
READ_SETTING(OSTC3_DECO_GAS_CONSUMPTION, decoGasConsumption);
+ READ_SETTING(OSTC4_TRAVEL_GAS_CONSUMPTION, travelGasConsumption);
READ_SETTING(OSTC3_ALWAYS_SHOW_PPO2, alwaysShowppO2);
READ_SETTING(OSTC3_SAFETY_STOP_LENGTH, safetyStopLength);
READ_SETTING(OSTC3_SAFETY_STOP_START_DEPTH, safetyStopStartDepth);
+ /*
+ * Settings not yet implemented
+ *
+ * logbook offset 0x47 0..9000 low byte 0..9000 high byte
+ * Extra display 0x71 0=0ff, 1=BigFont
+ * Custom View Center 0x72 0..8 (..9 Bonex Version)
+ * CV Center Fallback 0x73 0..20 sec
+ * Custom View Corner 0x74 1..7
+ * CV Corner Fallback 0x75 0..20 sec
+ */
#undef READ_SETTING
@@ -624,7 +640,7 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de
dc_status_t rc = DC_STATUS_SUCCESS;
dc_event_progress_t progress;
progress.current = 0;
- progress.maximum = 18;
+ progress.maximum = 21;
//write gas values
unsigned char gas1Data[4] = {
@@ -835,12 +851,25 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de
WRITE_SETTING(OSTC3_DECO_TYPE, decoType);
WRITE_SETTING(OSTC3_AGF_HIGH, aGFHigh);
WRITE_SETTING(OSTC3_AGF_LOW, aGFLow);
+ WRITE_SETTING(OSTC4_VPM_CONSERVATISM, vpmConservatism);
WRITE_SETTING(OSTC3_SETPOINT_FALLBACK, setPointFallback);
+ WRITE_SETTING(OSTC4_BUTTON_SENSIVITY, buttonSensitivity);
WRITE_SETTING(OSTC3_BOTTOM_GAS_CONSUMPTION, bottomGasConsumption);
WRITE_SETTING(OSTC3_DECO_GAS_CONSUMPTION, decoGasConsumption);
+ WRITE_SETTING(OSTC4_TRAVEL_GAS_CONSUMPTION, travelGasConsumption);
WRITE_SETTING(OSTC3_ALWAYS_SHOW_PPO2, alwaysShowppO2);
WRITE_SETTING(OSTC3_SAFETY_STOP_LENGTH, safetyStopLength);
WRITE_SETTING(OSTC3_SAFETY_STOP_START_DEPTH, safetyStopStartDepth);
+ /*
+ * Settings not yet implemented
+ *
+ * logbook offset 0x47 0..9000 low byte 0..9000 high byte
+ * Extra display 0x71 0=0ff, 1=BigFont
+ * Custom View Center 0x72 0..8 (..9 Bonex Version)
+ * CV Center Fallback 0x73 0..20 sec
+ * Custom View Corner 0x74 1..7
+ * CV Corner Fallback 0x75 0..20 sec
+ */
#undef WRITE_SETTING
diff --git a/core/devicedetails.cpp b/core/devicedetails.cpp
index e21983a79..18941a0e2 100644
--- a/core/devicedetails.cpp
+++ b/core/devicedetails.cpp
@@ -28,6 +28,7 @@ DeviceDetails::DeviceDetails(QObject *parent) :
aGFLow(0),
aGFHigh(0),
aGFSelectable(0),
+ vpmConservatism(0),
saturation(0),
desaturation(0),
lastDeco(0),
@@ -56,8 +57,10 @@ DeviceDetails::DeviceDetails(QObject *parent) :
alarmDepth(0),
leftButtonSensitivity(0),
rightButtonSensitivity(0),
+ buttonSensitivity(0),
bottomGasConsumption(0),
decoGasConsumption(0),
+ travelGasConsumption(0),
modWarning(false),
dynamicAscendRate(false),
graphicalSpeedIndicator(false),
diff --git a/core/devicedetails.h b/core/devicedetails.h
index ac12b6ca4..cb1a5ad1e 100644
--- a/core/devicedetails.h
+++ b/core/devicedetails.h
@@ -60,6 +60,7 @@ public:
int aGFLow;
int aGFHigh;
int aGFSelectable;
+ int vpmConservatism;
int saturation;
int desaturation;
int lastDeco;
@@ -88,8 +89,10 @@ public:
int alarmDepth;
int leftButtonSensitivity;
int rightButtonSensitivity;
+ int buttonSensitivity;
int bottomGasConsumption;
int decoGasConsumption;
+ int travelGasConsumption;
bool modWarning;
bool dynamicAscendRate;
bool graphicalSpeedIndicator;
diff --git a/desktop-widgets/configuredivecomputerdialog.cpp b/desktop-widgets/configuredivecomputerdialog.cpp
index db7249f83..41e3ed386 100644
--- a/desktop-widgets/configuredivecomputerdialog.cpp
+++ b/desktop-widgets/configuredivecomputerdialog.cpp
@@ -811,9 +811,12 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC4()
deviceDetails->decoType = ui.decoTypeComboBox_4->currentIndex();
deviceDetails->aGFHigh = ui.aGFHighSpinBox_4->value();
deviceDetails->aGFLow = ui.aGFLowSpinBox_4->value();
+ deviceDetails->vpmConservatism = ui.vpmConservatismSpinBox->value();
deviceDetails->setPointFallback = ui.setPointFallbackCheckBox_4->isChecked();
+ deviceDetails->buttonSensitivity = ui.buttonSensitivity_4->value();
deviceDetails->bottomGasConsumption = ui.bottomGasConsumption_4->value();
deviceDetails->decoGasConsumption = ui.decoGasConsumption_4->value();
+ deviceDetails->travelGasConsumption = ui.travelGasConsumption_4->value();
deviceDetails->alwaysShowppO2 = ui.alwaysShowppO2_4->isChecked();
deviceDetails->tempSensorOffset = lrint(ui.tempSensorOffsetDoubleSpinBox_4->value() * 10);
deviceDetails->safetyStopLength = ui.safetyStopLengthSpinBox_4->value();
@@ -1316,9 +1319,12 @@ void ConfigureDiveComputerDialog::reloadValuesOSTC4()
ui.decoTypeComboBox_4->setCurrentIndex(deviceDetails->decoType);
ui.aGFHighSpinBox_4->setValue(deviceDetails->aGFHigh);
ui.aGFLowSpinBox_4->setValue(deviceDetails->aGFLow);
+ ui.vpmConservatismSpinBox->setValue(deviceDetails->vpmConservatism);
ui.setPointFallbackCheckBox_4->setChecked(deviceDetails->setPointFallback);
+ ui.buttonSensitivity_4->setValue(deviceDetails->buttonSensitivity);
ui.bottomGasConsumption_4->setValue(deviceDetails->bottomGasConsumption);
ui.decoGasConsumption_4->setValue(deviceDetails->decoGasConsumption);
+ ui.travelGasConsumption_4->setValue(deviceDetails->travelGasConsumption);
ui.alwaysShowppO2_4->setChecked(deviceDetails->alwaysShowppO2);
ui.tempSensorOffsetDoubleSpinBox_4->setValue((double)deviceDetails->tempSensorOffset / 10.0);
ui.safetyStopLengthSpinBox_4->setValue(deviceDetails->safetyStopLength);
diff --git a/desktop-widgets/configuredivecomputerdialog.ui b/desktop-widgets/configuredivecomputerdialog.ui
index 8757c3639..6e0b65b3c 100644
--- a/desktop-widgets/configuredivecomputerdialog.ui
+++ b/desktop-widgets/configuredivecomputerdialog.ui
@@ -3261,14 +3261,37 @@
<string>Advanced settings</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_8">
- <item row="12" column="0" colspan="2">
- <widget class="QCheckBox" name="alwaysShowppO2_4">
+ <item row="12" column="3">
+ <widget class="QLabel">
<property name="text">
- <string>Always show pO₂</string>
+ <string>Travel gas consumption</string>
</property>
</widget>
</item>
- <item row="1" column="0">
+ <item row="11" column="4">
+ <widget class="QSpinBox" name="buttonSensitivity_4">
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>50</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>70</number>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="3">
+ <widget class="QLabel">
+ <property name="text">
+ <string>Button sensitivity</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
<widget class="QLabel">
<property name="text">
<string>Future TTS</string>
@@ -3282,14 +3305,14 @@
</property>
</widget>
</item>
- <item row="1" column="3">
+ <item row="2" column="3">
<widget class="QLabel">
<property name="text">
<string>GFLow</string>
</property>
</widget>
</item>
- <item row="1" column="4">
+ <item row="2" column="4">
<widget class="QSpinBox" name="gfLowSpinBox_4">
<property name="suffix">
<string>%</string>
@@ -3305,14 +3328,14 @@
</property>
</widget>
</item>
- <item row="2" column="3">
+ <item row="3" column="3">
<widget class="QLabel">
<property name="text">
<string>GFHigh</string>
</property>
</widget>
</item>
- <item row="2" column="4">
+ <item row="3" column="4">
<widget class="QSpinBox" name="gfHighSpinBox_4">
<property name="suffix">
<string>%</string>
@@ -3328,20 +3351,7 @@
</property>
</widget>
</item>
- <item row="14" column="0">
- <spacer>
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="2" column="1">
+ <item row="3" column="1">
<widget class="QSpinBox" name="lastDecoSpinBox_4">
<property name="suffix">
<string> m</string>
@@ -3361,7 +3371,7 @@
</property>
</widget>
</item>
- <item row="3" column="4">
+ <item row="4" column="4">
<widget class="QSpinBox" name="aGFLowSpinBox_4">
<property name="suffix">
<string>%</string>
@@ -3412,7 +3422,7 @@
</item>
</widget>
</item>
- <item row="1" column="1">
+ <item row="2" column="1">
<widget class="QSpinBox" name="futureTTSSpinBox_4">
<property name="suffix">
<string> min</string>
@@ -3422,7 +3432,7 @@
</property>
</widget>
</item>
- <item row="2" column="0">
+ <item row="3" column="0">
<widget class="QLabel">
<property name="text">
<string>Last deco</string>
@@ -3432,14 +3442,14 @@
</property>
</widget>
</item>
- <item row="3" column="3">
+ <item row="4" column="3">
<widget class="QLabel">
<property name="text">
<string>Alt GFLow</string>
</property>
</widget>
</item>
- <item row="6" column="4">
+ <item row="7" column="4">
<widget class="QSpinBox" name="aGFHighSpinBox_4">
<property name="suffix">
<string>%</string>
@@ -3455,21 +3465,21 @@
</property>
</widget>
</item>
- <item row="6" column="3">
+ <item row="7" column="3">
<widget class="QLabel">
<property name="text">
<string>Alt GFHigh</string>
</property>
</widget>
</item>
- <item row="12" column="3">
+ <item row="13" column="3">
<widget class="QLabel">
<property name="text">
<string>Bottom gas consumption</string>
</property>
</widget>
</item>
- <item row="13" column="3">
+ <item row="14" column="3">
<widget class="QLabel">
<property name="text">
<string>Deco gas consumption</string>
@@ -3477,7 +3487,7 @@
</widget>
</item>
<item row="12" column="4">
- <widget class="QSpinBox" name="bottomGasConsumption_4">
+ <widget class="QSpinBox" name="travelGasConsumption_4">
<property name="suffix">
<string> ℓ/min</string>
</property>
@@ -3493,6 +3503,22 @@
</widget>
</item>
<item row="13" column="4">
+ <widget class="QSpinBox" name="bottomGasConsumption_4">
+ <property name="suffix">
+ <string> ℓ/min</string>
+ </property>
+ <property name="minimum">
+ <number>5</number>
+ </property>
+ <property name="maximum">
+ <number>50</number>
+ </property>
+ <property name="value">
+ <number>20</number>
+ </property>
+ </widget>
+ </item>
+ <item row="14" column="4">
<widget class="QSpinBox" name="decoGasConsumption_4">
<property name="suffix">
<string> ℓ/min</string>
@@ -3508,14 +3534,54 @@
</property>
</widget>
</item>
- <item row="14" column="3">
+ <item row="16" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="alwaysShowppO2_4">
+ <property name="text">
+ <string>Always show pO₂</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel">
+ <property name="text">
+ <string>VPM conservatism</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="vpmConservatismSpinBox">
+ <property name="prefix">
+ <string>+</string>
+ </property>
+ <property name="maximum">
+ <number>5</number>
+ </property>
+ <property name="value">
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3">
<widget class="QLabel">
<property name="text">
<string>Temperature sensor offset</string>
</property>
</widget>
</item>
- <item row="14" column="4">
+ <item row="1" column="4">
<widget class="QDoubleSpinBox" name="tempSensorOffsetDoubleSpinBox_4">
<property name="suffix">
<string>°C</string>