diff --git a/qt-ui/configuredivecomputer.cpp b/qt-ui/configuredivecomputer.cpp index c88534e9f..a91a48d25 100644 --- a/qt-ui/configuredivecomputer.cpp +++ b/qt-ui/configuredivecomputer.cpp @@ -61,6 +61,8 @@ bool ConfigureDiveComputer::saveXMLBackup(QString fileName, DeviceDetails *detai xml += "\n"; xml += "\n"; xml += addSettingToXML("CustomText", details->customText()); + xml += addSettingToXML("DiveMode", details->diveMode()); + xml += addSettingToXML("Saturation", details->saturation()); xml += addSettingToXML("LastDeco", details->lastDeco()); xml += addSettingToXML("Brightness", details->brightness()); xml += addSettingToXML("Units", details->units()); @@ -126,6 +128,12 @@ bool ConfigureDiveComputer::restoreXMLBackup(QString fileName, DeviceDetails *de if (settingName == "CustomText") details->setCustomText(keyString); + if (settingName == "Saturation") + details->setSaturation(keyString.toInt()); + + if (settingName == "DiveMode") + details->setDiveMode(keyString.toInt()); + if (settingName == "LastDeco") details->setLastDeco(keyString.toInt()); diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp index d9cee9229..769f2cdc8 100644 --- a/qt-ui/configuredivecomputerdialog.cpp +++ b/qt-ui/configuredivecomputerdialog.cpp @@ -116,6 +116,8 @@ void ConfigureDiveComputerDialog::fill_computer_list() void ConfigureDiveComputerDialog::populateDeviceDetails() { deviceDetails->setCustomText(ui->customTextLlineEdit->text()); + deviceDetails->setDiveMode(ui->diveModeComboBox->currentIndex()); + deviceDetails->setSaturation(ui->saturationSpinBox->value()); deviceDetails->setLastDeco(ui->lastDecoSpinBox->value()); deviceDetails->setBrightness(ui->brightnessComboBox->currentIndex()); deviceDetails->setUnits(ui->unitsComboBox->currentIndex()); @@ -187,6 +189,8 @@ void ConfigureDiveComputerDialog::reloadValues() ui->serialNoLineEdit->setText(deviceDetails->serialNo()); ui->firmwareVersionLineEdit->setText(deviceDetails->firmwareVersion()); ui->customTextLlineEdit->setText(deviceDetails->customText()); + ui->diveModeComboBox->setCurrentIndex(deviceDetails->diveMode()); + ui->saturationSpinBox->setValue(deviceDetails->saturation()); ui->lastDecoSpinBox->setValue(deviceDetails->lastDeco()); ui->brightnessComboBox->setCurrentIndex(deviceDetails->brightness()); ui->unitsComboBox->setCurrentIndex(deviceDetails->units()); diff --git a/qt-ui/configuredivecomputerdialog.ui b/qt-ui/configuredivecomputerdialog.ui index 22bd9b563..2d8825847 100644 --- a/qt-ui/configuredivecomputerdialog.ui +++ b/qt-ui/configuredivecomputerdialog.ui @@ -98,28 +98,28 @@ HW OSTC 3 - + m - + Sync dive computer time with PC - + Units: - + Salinity (0-5%): @@ -150,14 +150,14 @@ - + Date Format: - + Compass Gain: @@ -171,14 +171,14 @@ - + Last Deco: - + Qt::Vertical @@ -198,7 +198,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -241,7 +241,7 @@ - + @@ -279,7 +279,7 @@ - + Brightness: @@ -293,21 +293,21 @@ - + Dive Mode Colour: - + Sampling Rate: - + @@ -326,7 +326,7 @@ - + @@ -347,7 +347,7 @@ - + % @@ -357,7 +357,7 @@ - + @@ -407,6 +407,51 @@ + + + + Dive Mode: + + + + + + + + OC + + + + + CC + + + + + Gauge + + + + + Apnea + + + + + + + + Saturation: + + + + + + + % + + + @@ -455,7 +500,7 @@ - device + cancel search retrieveDetails saveSettingsPushButton @@ -466,6 +511,8 @@ firmwareVersionLineEdit customTextLlineEdit languageComboBox + diveModeComboBox + saturationSpinBox lastDecoSpinBox brightnessComboBox dateFormatComboBox @@ -475,7 +522,7 @@ diveModeColour compassGainComboBox dateTimeSyncCheckBox - cancel + device diff --git a/qt-ui/configuredivecomputerthreads.cpp b/qt-ui/configuredivecomputerthreads.cpp index 369640459..f0e2bde6e 100644 --- a/qt-ui/configuredivecomputerthreads.cpp +++ b/qt-ui/configuredivecomputerthreads.cpp @@ -34,6 +34,14 @@ void ReadSettingsThread::run() //Read general settings unsigned char uData[1] = {0}; + //DiveMode + rc = hw_ostc3_device_config_read(m_data->device, 0x20, uData, sizeof(uData)); + if (rc == DC_STATUS_SUCCESS) + m_deviceDetails->setDiveMode(uData[0]); + //Saturation + rc = hw_ostc3_device_config_read(m_data->device, 0x2A, uData, sizeof(uData)); + if (rc == DC_STATUS_SUCCESS) + m_deviceDetails->setSaturation(uData[0]); //LastDeco rc = hw_ostc3_device_config_read(m_data->device, 0x2D, uData, sizeof(uData)); if (rc == DC_STATUS_SUCCESS) @@ -122,6 +130,14 @@ void WriteSettingsThread::run() hw_ostc3_device_customtext(m_data->device, m_deviceDetails->customText().toUtf8().data()); unsigned char data[1] = {0}; + //dive mode + data[0] = m_deviceDetails->diveMode(); + hw_ostc3_device_config_write(m_data->device, 0x20, data, sizeof(data)); + + //saturation + data[0] = m_deviceDetails->saturation(); + hw_ostc3_device_config_write(m_data->device, 0x2A, data, sizeof(data)); + //last deco data[0] = m_deviceDetails->lastDeco(); hw_ostc3_device_config_write(m_data->device, 0x2C, data, sizeof(data));