diff options
author | Joseph W. Joshua <joejoshw@gmail.com> | 2014-06-21 09:14:55 +0300 |
---|---|---|
committer | Thiago Macieira <thiago@macieira.org> | 2014-08-13 10:48:14 -0700 |
commit | a52beebbe9ba8d335d6d867a868166996dc6711e (patch) | |
tree | 14fa8d2b1e18d9cb57fedb4cf55550f8c056d703 | |
parent | 8b39d2fc172b72ade19a754f33575f663573f147 (diff) | |
download | subsurface-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.cpp | 38 | ||||
-rw-r--r-- | qt-ui/configuredivecomputerdialog.cpp | 38 |
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() |