[PATCH 7/7] Connect the Suunto Vyper Configuration ui

Anton Lundin glance at acc.umu.se
Sun Oct 12 07:51:30 PDT 2014


This code connects up the configuration ui with the backing
data structures thats gets read/written to/from the devices.

Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
 qt-ui/configuredivecomputerdialog.cpp | 66 +++++++++++++++++++++++++++++++++++
 qt-ui/configuredivecomputerdialog.h   |  4 +++
 2 files changed, 70 insertions(+)

diff --git a/qt-ui/configuredivecomputerdialog.cpp b/qt-ui/configuredivecomputerdialog.cpp
index 39ec9fb..635740a 100644
--- a/qt-ui/configuredivecomputerdialog.cpp
+++ b/qt-ui/configuredivecomputerdialog.cpp
@@ -116,6 +116,18 @@ void ConfigureDiveComputerDialog::fill_computer_list()
 
 void ConfigureDiveComputerDialog::populateDeviceDetails()
 {
+	switch(ui->dcStackedWidget->currentIndex()) {
+	case 0:
+		populateDeviceDetailsOSTC3();
+		break;
+	case 1:
+		populateDeviceDetailsSuuntoVyper();
+		break;
+	}
+}
+
+void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3()
+{
 	deviceDetails->setCustomText(ui->customTextLlineEdit->text());
 	deviceDetails->setDiveMode(ui->diveModeComboBox->currentIndex());
 	deviceDetails->setSaturation(ui->saturationSpinBox->value());
@@ -236,6 +248,23 @@ void ConfigureDiveComputerDialog::populateDeviceDetails()
 	deviceDetails->setSp5(sp5);
 }
 
+void ConfigureDiveComputerDialog::populateDeviceDetailsSuuntoVyper()
+{
+	deviceDetails->setCustomText(ui->customTextLlineEdit_1->text());
+	deviceDetails->setSamplingRate(ui->samplingRateComboBox_1->currentIndex() == 3 ? 60 : (ui->samplingRateComboBox_1->currentIndex() + 1) * 10);
+	deviceDetails->setAltitude(ui->altitudeRangeComboBox->currentIndex());
+	deviceDetails->setPersonalSafety(ui->personalSafetyComboBox->currentIndex());
+	deviceDetails->setTimeFormat(ui->timeFormatComboBox->currentIndex());
+	deviceDetails->setUnits(ui->unitsComboBox_1->currentIndex());
+	deviceDetails->setDiveMode(ui->diveModeComboBox_1->currentIndex());
+	deviceDetails->setLightEnabled(ui->lightCheckBox->isChecked());
+	deviceDetails->setLight(ui->lightSpinBox->value());
+	deviceDetails->setAlarmDepthEnabled(ui->alarmDepthCheckBox->isChecked());
+	deviceDetails->setAlarmDepth(units_to_depth(ui->alarmDepthDoubleSpinBox->value()));
+	deviceDetails->setAlarmTimeEnabled(ui->alarmTimeCheckBox->isChecked());
+	deviceDetails->setAlarmTime(ui->alarmTimeSpinBox->value());
+}
+
 void ConfigureDiveComputerDialog::readSettings()
 {
 	ui->statusLabel->clear();
@@ -293,6 +322,18 @@ void ConfigureDiveComputerDialog::deviceDetailsReceived(DeviceDetails *newDevice
 
 void ConfigureDiveComputerDialog::reloadValues()
 {
+	switch(ui->dcStackedWidget->currentIndex()) {
+	case 0:
+		reloadValuesOSTC3();
+		break;
+	case 1:
+		reloadValuesSuuntoVyper();
+		break;
+	}
+}
+
+void ConfigureDiveComputerDialog::reloadValuesOSTC3()
+{
 	ui->serialNoLineEdit->setText(deviceDetails->serialNo());
 	ui->firmwareVersionLineEdit->setText(deviceDetails->firmwareVersion());
 	ui->customTextLlineEdit->setText(deviceDetails->customText());
@@ -390,6 +431,31 @@ void ConfigureDiveComputerDialog::reloadValues()
 	ui->ostc3SetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->sp5().depth)));
 }
 
+void ConfigureDiveComputerDialog::reloadValuesSuuntoVyper()
+{
+	const char *depth_unit;
+	ui->maxDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails->maxDepth(), NULL, &depth_unit));
+	ui->maxDepthDoubleSpinBox->setSuffix(depth_unit);
+	ui->totalTimeSpinBox->setValue(deviceDetails->totalTime());
+	ui->numberOfDivesSpinBox->setValue(deviceDetails->numberOfDives());
+	ui->modelLineEdit->setText(deviceDetails->model());
+	ui->firmwareVersionLineEdit_1->setText(deviceDetails->firmwareVersion());
+	ui->serialNoLineEdit_1->setText(deviceDetails->serialNo());
+	ui->customTextLlineEdit_1->setText(deviceDetails->customText());
+	ui->samplingRateComboBox_1->setCurrentIndex(deviceDetails->samplingRate() == 60 ? 3 : (deviceDetails->samplingRate() / 10) - 1);
+	ui->altitudeRangeComboBox->setCurrentIndex(deviceDetails->altitude());
+	ui->personalSafetyComboBox->setCurrentIndex(deviceDetails->personalSafety());
+	ui->timeFormatComboBox->setCurrentIndex(deviceDetails->timeFormat());
+	ui->unitsComboBox_1->setCurrentIndex(deviceDetails->units());
+	ui->diveModeComboBox_1->setCurrentIndex(deviceDetails->diveMode());
+	ui->lightCheckBox->setChecked(deviceDetails->lightEnabled());
+	ui->lightSpinBox->setValue(deviceDetails->light());
+	ui->alarmDepthCheckBox->setChecked(deviceDetails->alarmDepthEnabled());
+	ui->alarmDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails->alarmDepth(), NULL, &depth_unit));
+	ui->alarmDepthDoubleSpinBox->setSuffix(depth_unit);
+	ui->alarmTimeCheckBox->setChecked(deviceDetails->alarmTimeEnabled());
+	ui->alarmTimeSpinBox->setValue(deviceDetails->alarmTime());
+}
 
 void ConfigureDiveComputerDialog::on_backupButton_clicked()
 {
diff --git a/qt-ui/configuredivecomputerdialog.h b/qt-ui/configuredivecomputerdialog.h
index 66871ef..c6e2773 100644
--- a/qt-ui/configuredivecomputerdialog.h
+++ b/qt-ui/configuredivecomputerdialog.h
@@ -52,6 +52,10 @@ private:
 
 	DeviceDetails *deviceDetails;
 	void populateDeviceDetails();
+	void populateDeviceDetailsOSTC3();
+	void populateDeviceDetailsSuuntoVyper();
+	void reloadValuesOSTC3();
+	void reloadValuesSuuntoVyper();
 
 	QString selected_vendor;
 	QString selected_product;
-- 
1.9.1



More information about the subsurface mailing list