summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joseph W. Joshua <joejoshw@gmail.com>2014-06-21 09:14:55 +0300
committerGravatar Thiago Macieira <thiago@macieira.org>2014-08-13 10:48:14 -0700
commita52beebbe9ba8d335d6d867a868166996dc6711e (patch)
tree14fa8d2b1e18d9cb57fedb4cf55550f8c056d703
parent8b39d2fc172b72ade19a754f33575f663573f147 (diff)
downloadsubsurface-a52beebbe9ba8d335d6d867a868166996dc6711e.tar.gz
Implement saving of OSTC3 Gas Settings
Implements writing OSTC3 gas settings to the device. Signed-off-by: Joseph W. Joshua <joejoshw@gmail.com> Signed-off-by: Thiago Macieira <thiago@macieira.org>
-rw-r--r--configuredivecomputerthreads.cpp38
-rw-r--r--qt-ui/configuredivecomputerdialog.cpp38
2 files changed, 75 insertions, 1 deletions
diff --git a/configuredivecomputerthreads.cpp b/configuredivecomputerthreads.cpp
index 7ee015f3e..ae57893dc 100644
--- a/configuredivecomputerthreads.cpp
+++ b/configuredivecomputerthreads.cpp
@@ -185,8 +185,44 @@ void WriteSettingsThread::run()
switch (dc_device_get_type(m_data->device)) {
case DC_FAMILY_HW_OSTC3:
supported = true;
- //write general settings
+ //write gas values
+ unsigned char gas1Data[4] = {m_deviceDetails->gas1().oxygen,
+ m_deviceDetails->gas1().helium,
+ m_deviceDetails->gas1().type,
+ m_deviceDetails->gas1().depth};
+
+ unsigned char gas2Data[4] = {m_deviceDetails->gas2().oxygen,
+ m_deviceDetails->gas2().helium,
+ m_deviceDetails->gas2().type,
+ m_deviceDetails->gas2().depth};
+
+ unsigned char gas3Data[4] = {m_deviceDetails->gas3().oxygen,
+ m_deviceDetails->gas3().helium,
+ m_deviceDetails->gas3().type,
+ m_deviceDetails->gas3().depth};
+
+ unsigned char gas4Data[4] = {m_deviceDetails->gas4().oxygen,
+ m_deviceDetails->gas4().helium,
+ m_deviceDetails->gas4().type,
+ m_deviceDetails->gas4().depth};
+
+ unsigned char gas5Data[4] = {m_deviceDetails->gas5().oxygen,
+ m_deviceDetails->gas5().helium,
+ m_deviceDetails->gas5().type,
+ m_deviceDetails->gas5().depth};
+ //gas 1
+ hw_ostc3_device_config_write(m_data->device, 0x10, gas1Data, sizeof(gas1Data));
+ //gas 2
+ hw_ostc3_device_config_write(m_data->device, 0x11, gas2Data, sizeof(gas2Data));
+ //gas 3
+ hw_ostc3_device_config_write(m_data->device, 0x12, gas3Data, sizeof(gas3Data));
+ //gas 4
+ hw_ostc3_device_config_write(m_data->device, 0x13, gas4Data, sizeof(gas4Data));
+ //gas 5
+ hw_ostc3_device_config_write(m_data->device, 0x14, gas5Data, sizeof(gas5Data));
+
+ //write general settings
//custom text
hw_ostc3_device_customtext(m_data->device, m_deviceDetails->customText().toUtf8().data());
unsigned char data[1] = {0};
diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp
index 27c377a4e..a6dd95208 100644
--- a/qt-ui/configuredivecomputerdialog.cpp
+++ b/qt-ui/configuredivecomputerdialog.cpp
@@ -129,6 +129,44 @@ void ConfigureDiveComputerDialog::populateDeviceDetails()
deviceDetails->setDateFormat(ui->dateFormatComboBox->currentIndex());
deviceDetails->setCompassGain(ui->compassGainComboBox->currentIndex());
deviceDetails->setSyncTime(ui->dateTimeSyncCheckBox->isChecked());
+
+ //set gas values
+ gas gas1;
+ gas gas2;
+ gas gas3;
+ gas gas4;
+ gas gas5;
+
+ gas1.oxygen = ui->ostc3GasTable->item(0, 1)->text().toInt();
+ gas1.helium = ui->ostc3GasTable->item(0, 2)->text().toInt();
+ gas1.type = ui->ostc3GasTable->item(0, 3)->text().toInt();
+ gas1.depth = ui->ostc3GasTable->item(0, 4)->text().toInt();
+
+ gas2.oxygen = ui->ostc3GasTable->item(1, 1)->text().toInt();
+ gas2.helium = ui->ostc3GasTable->item(1, 2)->text().toInt();
+ gas2.type = ui->ostc3GasTable->item(1, 3)->text().toInt();
+ gas2.depth = ui->ostc3GasTable->item(1, 4)->text().toInt();
+
+ gas3.oxygen = ui->ostc3GasTable->item(2, 1)->text().toInt();
+ gas3.helium = ui->ostc3GasTable->item(2, 2)->text().toInt();
+ gas3.type = ui->ostc3GasTable->item(2, 3)->text().toInt();
+ gas3.depth = ui->ostc3GasTable->item(2, 4)->text().toInt();
+
+ gas4.oxygen = ui->ostc3GasTable->item(3, 1)->text().toInt();
+ gas4.helium = ui->ostc3GasTable->item(3, 2)->text().toInt();
+ gas4.type = ui->ostc3GasTable->item(3, 3)->text().toInt();
+ gas4.depth = ui->ostc3GasTable->item(3, 4)->text().toInt();
+
+ gas5.oxygen = ui->ostc3GasTable->item(4, 1)->text().toInt();
+ gas5.helium = ui->ostc3GasTable->item(4, 2)->text().toInt();
+ gas5.type = ui->ostc3GasTable->item(4, 3)->text().toInt();
+ gas5.depth = ui->ostc3GasTable->item(4, 4)->text().toInt();
+
+ deviceDetails->setGas1(gas1);
+ deviceDetails->setGas2(gas2);
+ deviceDetails->setGas3(gas3);
+ deviceDetails->setGas4(gas4);
+ deviceDetails->setGas5(gas5);
}
void ConfigureDiveComputerDialog::readSettings()