Implement OSTC4 specific settings

Signed-off-by: Anton Lundin <glance@acc.umu.se>
This commit is contained in:
Anton Lundin 2017-04-27 21:25:04 +02:00 committed by Dirk Hohndel
parent 5a4e1a5586
commit f14ad7f183
5 changed files with 142 additions and 35 deletions

View file

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

View file

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

View file

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

View file

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

View file

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