2014-05-29 15:54:19 +00:00
# include "configuredivecomputerdialog.h"
2014-12-28 18:22:46 +00:00
# include "divecomputer.h"
# include "libdivecomputer.h"
# include "helpers.h"
# include "display.h"
# include "divelist.h"
2014-05-30 06:56:27 +00:00
# include "configuredivecomputer.h"
2014-12-28 18:22:46 +00:00
# include "mainwindow.h"
2014-06-10 16:19:28 +00:00
# include <QFileDialog>
# include <QMessageBox>
2014-10-15 23:13:54 +00:00
# include <QSettings>
2014-12-26 21:39:53 +00:00
# include <QWebElement>
# include <QWebFrame>
# include <QWebPage>
2014-12-28 18:22:46 +00:00
# include <QNetworkAccessManager>
# include <QNetworkRequest>
# include <QNetworkReply>
2014-12-28 07:58:49 +00:00
# include <QDebug>
2014-12-26 21:39:53 +00:00
2014-05-29 16:16:34 +00:00
struct product {
const char * product ;
dc_descriptor_t * descriptor ;
struct product * next ;
} ;
struct vendor {
const char * vendor ;
struct product * productlist ;
struct vendor * next ;
} ;
struct mydescriptor {
const char * vendor ;
const char * product ;
dc_family_t type ;
unsigned int model ;
} ;
2014-12-29 04:56:58 +00:00
GasSpinBoxItemDelegate : : GasSpinBoxItemDelegate ( QObject * parent , column_type type ) : QStyledItemDelegate ( parent ) , type ( type )
{
}
GasSpinBoxItemDelegate : : ~ GasSpinBoxItemDelegate ( )
{
}
2014-10-27 21:12:46 +00:00
2014-12-29 04:56:58 +00:00
QWidget * GasSpinBoxItemDelegate : : createEditor ( QWidget * parent , const QStyleOptionViewItem & option , const QModelIndex & index ) const
2014-10-27 21:12:46 +00:00
{
// Create the spinbox and give it it's settings
QSpinBox * sb = new QSpinBox ( parent ) ;
if ( type = = PERCENT ) {
sb - > setMinimum ( 0 ) ;
sb - > setMaximum ( 100 ) ;
sb - > setSuffix ( " % " ) ;
} else if ( type = = DEPTH ) {
sb - > setMinimum ( 0 ) ;
sb - > setMaximum ( 255 ) ;
sb - > setSuffix ( " m " ) ;
}
return sb ;
}
void GasSpinBoxItemDelegate : : setEditorData ( QWidget * editor , const QModelIndex & index ) const
{
2014-12-29 04:56:58 +00:00
if ( QSpinBox * sb = qobject_cast < QSpinBox * > ( editor ) )
2014-10-27 21:12:46 +00:00
sb - > setValue ( index . data ( Qt : : EditRole ) . toInt ( ) ) ;
else
QStyledItemDelegate : : setEditorData ( editor , index ) ;
}
void GasSpinBoxItemDelegate : : setModelData ( QWidget * editor , QAbstractItemModel * model , const QModelIndex & index ) const
{
2014-12-29 04:56:58 +00:00
if ( QSpinBox * sb = qobject_cast < QSpinBox * > ( editor ) )
2014-10-27 21:12:46 +00:00
model - > setData ( index , sb - > value ( ) , Qt : : EditRole ) ;
else
QStyledItemDelegate : : setModelData ( editor , model , index ) ;
}
2014-12-29 04:56:58 +00:00
GasTypeComboBoxItemDelegate : : GasTypeComboBoxItemDelegate ( QObject * parent , computer_type type ) : QStyledItemDelegate ( parent ) , type ( type )
{
}
GasTypeComboBoxItemDelegate : : ~ GasTypeComboBoxItemDelegate ( )
{
}
2014-10-27 21:12:45 +00:00
2014-12-29 04:56:58 +00:00
QWidget * GasTypeComboBoxItemDelegate : : createEditor ( QWidget * parent , const QStyleOptionViewItem & option , const QModelIndex & index ) const
2014-10-27 21:12:45 +00:00
{
// Create the combobox and populate it
QComboBox * cb = new QComboBox ( parent ) ;
cb - > addItem ( QString ( " Disabled " ) ) ;
if ( type = = OSTC3 ) {
cb - > addItem ( QString ( " Fist " ) ) ;
cb - > addItem ( QString ( " Travel " ) ) ;
cb - > addItem ( QString ( " Deco " ) ) ;
} else if ( type = = OSTC ) {
cb - > addItem ( QString ( " Active " ) ) ;
cb - > addItem ( QString ( " Fist " ) ) ;
}
return cb ;
}
void GasTypeComboBoxItemDelegate : : setEditorData ( QWidget * editor , const QModelIndex & index ) const
{
2014-12-29 04:56:58 +00:00
if ( QComboBox * cb = qobject_cast < QComboBox * > ( editor ) )
2014-10-27 21:12:45 +00:00
cb - > setCurrentIndex ( index . data ( Qt : : EditRole ) . toInt ( ) ) ;
else
QStyledItemDelegate : : setEditorData ( editor , index ) ;
}
void GasTypeComboBoxItemDelegate : : setModelData ( QWidget * editor , QAbstractItemModel * model , const QModelIndex & index ) const
{
2014-12-29 04:56:58 +00:00
if ( QComboBox * cb = qobject_cast < QComboBox * > ( editor ) )
2014-10-27 21:12:45 +00:00
model - > setData ( index , cb - > currentIndex ( ) , Qt : : EditRole ) ;
else
QStyledItemDelegate : : setModelData ( editor , model , index ) ;
}
2014-12-29 04:56:58 +00:00
ConfigureDiveComputerDialog : : ConfigureDiveComputerDialog ( QWidget * parent ) : QDialog ( parent ) ,
2014-05-30 06:56:27 +00:00
config ( 0 ) ,
2014-06-10 12:03:26 +00:00
deviceDetails ( 0 )
2014-05-29 15:54:19 +00:00
{
2014-10-15 23:13:53 +00:00
ui . setupUi ( this ) ;
2014-05-29 16:16:34 +00:00
2014-06-10 12:03:26 +00:00
deviceDetails = new DeviceDetails ( this ) ;
2014-12-29 04:44:31 +00:00
config = new ConfigureDiveComputer ( ) ;
2014-06-23 15:16:27 +00:00
connect ( config , SIGNAL ( error ( QString ) ) , this , SLOT ( configError ( QString ) ) ) ;
connect ( config , SIGNAL ( message ( QString ) ) , this , SLOT ( configMessage ( QString ) ) ) ;
2014-12-29 04:56:58 +00:00
connect ( config , SIGNAL ( deviceDetailsChanged ( DeviceDetails * ) ) ,
this , SLOT ( deviceDetailsReceived ( DeviceDetails * ) ) ) ;
2014-10-15 23:13:53 +00:00
connect ( ui . retrieveDetails , SIGNAL ( clicked ( ) ) , this , SLOT ( readSettings ( ) ) ) ;
2014-10-17 22:33:47 +00:00
connect ( ui . resetButton , SIGNAL ( clicked ( ) ) , this , SLOT ( resetSettings ( ) ) ) ;
2014-05-30 06:56:27 +00:00
2014-06-11 08:47:25 +00:00
memset ( & device_data , 0 , sizeof ( device_data ) ) ;
2014-05-29 16:16:34 +00:00
fill_computer_list ( ) ;
if ( default_dive_computer_device )
2014-10-15 23:13:53 +00:00
ui . device - > setEditText ( default_dive_computer_device ) ;
2014-05-30 06:56:27 +00:00
2014-10-15 23:13:53 +00:00
ui . DiveComputerList - > setCurrentRow ( 0 ) ;
2014-07-16 09:04:54 +00:00
on_DiveComputerList_currentRowChanged ( 0 ) ;
2014-10-15 23:13:54 +00:00
2014-10-27 21:12:46 +00:00
ui . ostc3GasTable - > setItemDelegateForColumn ( 1 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : PERCENT ) ) ;
ui . ostc3GasTable - > setItemDelegateForColumn ( 2 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : PERCENT ) ) ;
2014-10-27 21:12:45 +00:00
ui . ostc3GasTable - > setItemDelegateForColumn ( 3 , new GasTypeComboBoxItemDelegate ( this , GasTypeComboBoxItemDelegate : : OSTC3 ) ) ;
2014-10-27 21:12:46 +00:00
ui . ostc3GasTable - > setItemDelegateForColumn ( 4 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : DEPTH ) ) ;
2014-10-27 21:12:45 +00:00
ui . ostc3DilTable - > setItemDelegateForColumn ( 3 , new GasTypeComboBoxItemDelegate ( this , GasTypeComboBoxItemDelegate : : OSTC3 ) ) ;
2014-10-27 21:12:46 +00:00
ui . ostc3DilTable - > setItemDelegateForColumn ( 4 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : DEPTH ) ) ;
ui . ostcGasTable - > setItemDelegateForColumn ( 1 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : PERCENT ) ) ;
ui . ostcGasTable - > setItemDelegateForColumn ( 2 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : PERCENT ) ) ;
2014-10-27 21:12:45 +00:00
ui . ostcGasTable - > setItemDelegateForColumn ( 3 , new GasTypeComboBoxItemDelegate ( this , GasTypeComboBoxItemDelegate : : OSTC ) ) ;
2014-10-27 21:12:46 +00:00
ui . ostcGasTable - > setItemDelegateForColumn ( 4 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : DEPTH ) ) ;
2014-10-27 21:12:45 +00:00
ui . ostcDilTable - > setItemDelegateForColumn ( 3 , new GasTypeComboBoxItemDelegate ( this , GasTypeComboBoxItemDelegate : : OSTC ) ) ;
2014-10-27 21:12:46 +00:00
ui . ostcDilTable - > setItemDelegateForColumn ( 4 , new GasSpinBoxItemDelegate ( this , GasSpinBoxItemDelegate : : DEPTH ) ) ;
2014-10-27 21:12:45 +00:00
2014-10-15 23:13:54 +00:00
QSettings settings ;
settings . beginGroup ( " ConfigureDiveComputerDialog " ) ;
settings . beginGroup ( " ostc3GasTable " ) ;
for ( int i = 0 ; i < ui . ostc3GasTable - > columnCount ( ) ; i + + ) {
2014-12-29 04:56:58 +00:00
QVariant width = settings . value ( QString ( " colwidth%1 " ) . arg ( i ) ) ;
2014-10-15 23:13:54 +00:00
if ( width . isValid ( ) )
ui . ostc3GasTable - > setColumnWidth ( i , width . toInt ( ) ) ;
}
settings . endGroup ( ) ;
settings . beginGroup ( " ostc3DilTable " ) ;
for ( int i = 0 ; i < ui . ostc3DilTable - > columnCount ( ) ; i + + ) {
2014-12-29 04:56:58 +00:00
QVariant width = settings . value ( QString ( " colwidth%1 " ) . arg ( i ) ) ;
2014-10-15 23:13:54 +00:00
if ( width . isValid ( ) )
ui . ostc3DilTable - > setColumnWidth ( i , width . toInt ( ) ) ;
}
settings . endGroup ( ) ;
settings . beginGroup ( " ostc3SetPointTable " ) ;
for ( int i = 0 ; i < ui . ostc3SetPointTable - > columnCount ( ) ; i + + ) {
2014-12-29 04:56:58 +00:00
QVariant width = settings . value ( QString ( " colwidth%1 " ) . arg ( i ) ) ;
2014-10-15 23:13:54 +00:00
if ( width . isValid ( ) )
ui . ostc3SetPointTable - > setColumnWidth ( i , width . toInt ( ) ) ;
}
settings . endGroup ( ) ;
2014-10-27 20:54:57 +00:00
settings . beginGroup ( " ostcGasTable " ) ;
for ( int i = 0 ; i < ui . ostcGasTable - > columnCount ( ) ; i + + ) {
2014-12-29 04:56:58 +00:00
QVariant width = settings . value ( QString ( " colwidth%1 " ) . arg ( i ) ) ;
2014-10-27 20:54:57 +00:00
if ( width . isValid ( ) )
ui . ostcGasTable - > setColumnWidth ( i , width . toInt ( ) ) ;
}
settings . endGroup ( ) ;
settings . beginGroup ( " ostcDilTable " ) ;
for ( int i = 0 ; i < ui . ostcDilTable - > columnCount ( ) ; i + + ) {
2014-12-29 04:56:58 +00:00
QVariant width = settings . value ( QString ( " colwidth%1 " ) . arg ( i ) ) ;
2014-10-27 20:54:57 +00:00
if ( width . isValid ( ) )
ui . ostcDilTable - > setColumnWidth ( i , width . toInt ( ) ) ;
}
settings . endGroup ( ) ;
settings . beginGroup ( " ostcSetPointTable " ) ;
for ( int i = 0 ; i < ui . ostcSetPointTable - > columnCount ( ) ; i + + ) {
2014-12-29 04:56:58 +00:00
QVariant width = settings . value ( QString ( " colwidth%1 " ) . arg ( i ) ) ;
2014-10-27 20:54:57 +00:00
if ( width . isValid ( ) )
ui . ostcSetPointTable - > setColumnWidth ( i , width . toInt ( ) ) ;
}
settings . endGroup ( ) ;
2014-10-15 23:13:54 +00:00
settings . endGroup ( ) ;
2014-12-27 16:31:51 +00:00
}
2014-12-26 21:39:53 +00:00
2014-12-28 15:37:11 +00:00
OstcFirmwareCheck : : OstcFirmwareCheck ( QString product )
2014-12-27 16:31:51 +00:00
{
2014-12-28 15:37:11 +00:00
QUrl url ;
2014-12-28 18:22:46 +00:00
if ( product = = " OSTC 3 " ) {
2014-12-28 15:37:11 +00:00
url = QUrl ( " http://www.heinrichsweikamp.net/autofirmware/ostc3_changelog.txt " ) ;
2014-12-28 18:22:46 +00:00
latestFirmwareHexFile = QString ( " http://www.heinrichsweikamp.net/autofirmware/ostc3_firmware.hex " ) ;
} else if ( product = = " OSTC Sport " ) {
2014-12-28 15:37:11 +00:00
url = QUrl ( " http://www.heinrichsweikamp.net/autofirmware/ostc_sport_changelog.txt " ) ;
2014-12-28 18:22:46 +00:00
latestFirmwareHexFile = QString ( " http://www.heinrichsweikamp.net/autofirmware/ostc_sport_firmware.hex " ) ;
} else { // not one of the known dive computers
2014-12-28 15:37:11 +00:00
return ;
2014-12-28 18:22:46 +00:00
}
connect ( & manager , SIGNAL ( finished ( QNetworkReply * ) ) , this , SLOT ( parseOstcFwVersion ( QNetworkReply * ) ) ) ;
QNetworkRequest download ( url ) ;
manager . get ( download ) ;
2014-12-26 21:39:53 +00:00
}
2014-12-28 18:22:46 +00:00
void OstcFirmwareCheck : : parseOstcFwVersion ( QNetworkReply * reply )
2014-12-26 21:39:53 +00:00
{
2014-12-28 18:22:46 +00:00
QString parse = reply - > readAll ( ) ;
2014-12-28 15:37:11 +00:00
int firstOpenBracket = parse . indexOf ( ' [ ' ) ;
int firstCloseBracket = parse . indexOf ( ' ] ' ) ;
2014-12-29 04:56:58 +00:00
latestFirmwareAvailable = parse . mid ( firstOpenBracket + 1 , firstCloseBracket - firstOpenBracket - 1 ) ;
2014-12-28 15:37:11 +00:00
qDebug ( ) < < " latest firmware available " < < latestFirmwareAvailable ;
2014-12-29 04:56:58 +00:00
disconnect ( & manager , SIGNAL ( finished ( QNetworkReply * ) ) , this , SLOT ( parseOstcFwVersion ( QNetworkReply * ) ) ) ;
2014-12-27 16:31:51 +00:00
}
2014-12-28 18:22:46 +00:00
void OstcFirmwareCheck : : checkLatest ( QWidget * _parent , device_data_t * data )
2014-12-27 16:31:51 +00:00
{
2014-12-28 18:22:46 +00:00
devData = * data ;
parent = _parent ;
2014-12-27 16:31:51 +00:00
// for now libdivecomputer gives us the firmware on device undecoded as integer
// for the OSTC that means highbyte.lowbyte is the version number
2014-12-28 18:22:46 +00:00
int firmwareOnDevice = devData . libdc_firmware ;
2014-12-27 16:31:51 +00:00
QString firmware ;
2014-12-29 04:56:58 +00:00
firmware = QString ( " %1.%2 " ) . arg ( firmwareOnDevice / 256 ) . arg ( firmwareOnDevice % 256 ) ;
2014-12-27 16:31:51 +00:00
if ( ! latestFirmwareAvailable . isEmpty ( ) & & latestFirmwareAvailable ! = firmware ) {
2014-12-27 17:16:39 +00:00
QMessageBox response ( parent ) ;
QString message = tr ( " You should update the firmware on your dive computer: you have version %1 but the latest stable version is %2 " )
2014-12-29 04:56:58 +00:00
. arg ( firmware )
. arg ( latestFirmwareAvailable ) ;
2014-12-29 23:25:55 +00:00
if ( strcmp ( data - > product , " OSTC Sport " ) = = 0 )
message + = tr ( " \n \n Please start bluetooth on your OSTC Sport and do the same perparations as for a loogbook download before continuing with the update " ) ;
2014-12-27 17:16:39 +00:00
response . addButton ( tr ( " Not now " ) , QMessageBox : : RejectRole ) ;
response . addButton ( tr ( " Update firmware " ) , QMessageBox : : AcceptRole ) ;
response . setText ( message ) ;
response . setWindowTitle ( tr ( " Firmware upgrade notice " ) ) ;
response . setIcon ( QMessageBox : : Question ) ;
response . setWindowModality ( Qt : : WindowModal ) ;
int ret = response . exec ( ) ;
2014-12-28 18:22:46 +00:00
if ( ret = = QMessageBox : : Accepted )
upgradeFirmware ( ) ;
2014-12-27 16:31:51 +00:00
}
2014-05-29 15:54:19 +00:00
}
2014-12-28 18:22:46 +00:00
void OstcFirmwareCheck : : upgradeFirmware ( )
{
// start download of latestFirmwareHexFile
QString saveFileName = latestFirmwareHexFile ;
saveFileName . replace ( " http://www.heinrichsweikamp.net/autofirmware/ " , " " ) ;
saveFileName . replace ( " firmware " , latestFirmwareAvailable ) ;
QString filename = existing_filename ? : prefs . default_filename ;
QFileInfo fi ( filename ) ;
filename = fi . absolutePath ( ) . append ( QDir : : separator ( ) ) . append ( saveFileName ) ;
storeFirmware = QFileDialog : : getSaveFileName ( parent , tr ( " Save the downloaded firmware as " ) ,
filename , tr ( " HEX files (*.hex) " ) ) ;
if ( storeFirmware . isEmpty ( ) )
return ;
connect ( & manager , SIGNAL ( finished ( QNetworkReply * ) ) , this , SLOT ( saveOstcFirmware ( QNetworkReply * ) ) ) ;
QNetworkRequest download ( latestFirmwareHexFile ) ;
manager . get ( download ) ;
}
void OstcFirmwareCheck : : saveOstcFirmware ( QNetworkReply * reply )
{
// firmware is downloaded
// call config->startFirmwareUpdate() with that file and the device data
QByteArray firmwareData = reply - > readAll ( ) ;
QFile file ( storeFirmware ) ;
file . open ( QIODevice : : WriteOnly ) ;
file . write ( firmwareData ) ;
file . close ( ) ;
2014-12-29 04:56:58 +00:00
qDebug ( ) < < " file closed " ;
2014-12-29 04:44:31 +00:00
ConfigureDiveComputer * config = new ConfigureDiveComputer ( ) ;
2014-12-29 04:56:58 +00:00
qDebug ( ) < < " created config object, calling the firwmware uploader " ;
2014-12-28 18:22:46 +00:00
config - > startFirmwareUpdate ( storeFirmware , & devData ) ;
}
2014-05-29 15:54:19 +00:00
ConfigureDiveComputerDialog : : ~ ConfigureDiveComputerDialog ( )
{
2014-10-15 23:13:54 +00:00
QSettings settings ;
settings . beginGroup ( " ConfigureDiveComputerDialog " ) ;
settings . beginGroup ( " ostc3GasTable " ) ;
for ( int i = 0 ; i < ui . ostc3GasTable - > columnCount ( ) ; i + + )
settings . setValue ( QString ( " colwidth%1 " ) . arg ( i ) , ui . ostc3GasTable - > columnWidth ( i ) ) ;
settings . endGroup ( ) ;
settings . beginGroup ( " ostc3DilTable " ) ;
for ( int i = 0 ; i < ui . ostc3DilTable - > columnCount ( ) ; i + + )
settings . setValue ( QString ( " colwidth%1 " ) . arg ( i ) , ui . ostc3DilTable - > columnWidth ( i ) ) ;
settings . endGroup ( ) ;
settings . beginGroup ( " ostc3SetPointTable " ) ;
for ( int i = 0 ; i < ui . ostc3SetPointTable - > columnCount ( ) ; i + + )
settings . setValue ( QString ( " colwidth%1 " ) . arg ( i ) , ui . ostc3SetPointTable - > columnWidth ( i ) ) ;
settings . endGroup ( ) ;
2014-10-27 20:54:57 +00:00
settings . beginGroup ( " ostcGasTable " ) ;
for ( int i = 0 ; i < ui . ostcGasTable - > columnCount ( ) ; i + + )
settings . setValue ( QString ( " colwidth%1 " ) . arg ( i ) , ui . ostcGasTable - > columnWidth ( i ) ) ;
settings . endGroup ( ) ;
settings . beginGroup ( " ostcDilTable " ) ;
for ( int i = 0 ; i < ui . ostcDilTable - > columnCount ( ) ; i + + )
settings . setValue ( QString ( " colwidth%1 " ) . arg ( i ) , ui . ostcDilTable - > columnWidth ( i ) ) ;
settings . endGroup ( ) ;
settings . beginGroup ( " ostcSetPointTable " ) ;
for ( int i = 0 ; i < ui . ostcSetPointTable - > columnCount ( ) ; i + + )
settings . setValue ( QString ( " colwidth%1 " ) . arg ( i ) , ui . ostcSetPointTable - > columnWidth ( i ) ) ;
settings . endGroup ( ) ;
2014-10-15 23:13:54 +00:00
settings . endGroup ( ) ;
2014-05-29 15:54:19 +00:00
}
2014-05-29 16:16:34 +00:00
2014-06-11 08:47:25 +00:00
static void fillDeviceList ( const char * name , void * data )
{
QComboBox * comboBox = ( QComboBox * ) data ;
comboBox - > addItem ( name ) ;
}
void ConfigureDiveComputerDialog : : fill_device_list ( int dc_type )
{
int deviceIndex ;
2014-10-15 23:13:53 +00:00
ui . device - > clear ( ) ;
deviceIndex = enumerate_devices ( fillDeviceList , ui . device , dc_type ) ;
2014-06-11 08:47:25 +00:00
if ( deviceIndex > = 0 )
2014-10-15 23:13:53 +00:00
ui . device - > setCurrentIndex ( deviceIndex ) ;
2014-06-11 08:47:25 +00:00
}
2014-05-29 16:16:34 +00:00
void ConfigureDiveComputerDialog : : fill_computer_list ( )
{
dc_iterator_t * iterator = NULL ;
dc_descriptor_t * descriptor = NULL ;
struct mydescriptor * mydescriptor ;
dc_descriptor_iterator ( & iterator ) ;
while ( dc_iterator_next ( iterator , & descriptor ) = = DC_STATUS_SUCCESS ) {
const char * vendor = dc_descriptor_get_vendor ( descriptor ) ;
const char * product = dc_descriptor_get_product ( descriptor ) ;
if ( ! vendorList . contains ( vendor ) )
vendorList . append ( vendor ) ;
if ( ! productList [ vendor ] . contains ( product ) )
productList [ vendor ] . push_back ( product ) ;
descriptorLookup [ QString ( vendor ) + QString ( product ) ] = descriptor ;
}
dc_iterator_free ( iterator ) ;
mydescriptor = ( struct mydescriptor * ) malloc ( sizeof ( struct mydescriptor ) ) ;
mydescriptor - > vendor = " Uemis " ;
mydescriptor - > product = " Zurich " ;
mydescriptor - > type = DC_FAMILY_NULL ;
mydescriptor - > model = 0 ;
if ( ! vendorList . contains ( " Uemis " ) )
vendorList . append ( " Uemis " ) ;
if ( ! productList [ " Uemis " ] . contains ( " Zurich " ) )
productList [ " Uemis " ] . push_back ( " Zurich " ) ;
descriptorLookup [ " UemisZurich " ] = ( dc_descriptor_t * ) mydescriptor ;
qSort ( vendorList ) ;
}
2014-06-10 16:19:28 +00:00
void ConfigureDiveComputerDialog : : populateDeviceDetails ( )
2014-10-12 14:51:30 +00:00
{
2014-12-29 04:56:58 +00:00
switch ( ui . dcStackedWidget - > currentIndex ( ) ) {
2014-10-12 14:51:30 +00:00
case 0 :
populateDeviceDetailsOSTC3 ( ) ;
break ;
case 1 :
populateDeviceDetailsSuuntoVyper ( ) ;
break ;
2014-10-27 20:54:57 +00:00
case 2 :
populateDeviceDetailsOSTC ( ) ;
break ;
2014-10-12 14:51:30 +00:00
}
}
2014-10-14 18:21:04 +00:00
# define GET_INT_FROM(_field, _default) ((_field) != NULL) ? (_field)->text().toInt() : (_default)
2014-10-12 14:51:30 +00:00
void ConfigureDiveComputerDialog : : populateDeviceDetailsOSTC3 ( )
2014-06-10 16:19:28 +00:00
{
2014-10-15 23:13:53 +00:00
deviceDetails - > setCustomText ( ui . customTextLlineEdit - > text ( ) ) ;
deviceDetails - > setDiveMode ( ui . diveModeComboBox - > currentIndex ( ) ) ;
deviceDetails - > setSaturation ( ui . saturationSpinBox - > value ( ) ) ;
deviceDetails - > setDesaturation ( ui . desaturationSpinBox - > value ( ) ) ;
deviceDetails - > setLastDeco ( ui . lastDecoSpinBox - > value ( ) ) ;
deviceDetails - > setBrightness ( ui . brightnessComboBox - > currentIndex ( ) ) ;
deviceDetails - > setUnits ( ui . unitsComboBox - > currentIndex ( ) ) ;
deviceDetails - > setSamplingRate ( ui . samplingRateComboBox - > currentIndex ( ) ) ;
deviceDetails - > setSalinity ( ui . salinitySpinBox - > value ( ) ) ;
deviceDetails - > setDiveModeColor ( ui . diveModeColour - > currentIndex ( ) ) ;
deviceDetails - > setLanguage ( ui . languageComboBox - > currentIndex ( ) ) ;
deviceDetails - > setDateFormat ( ui . dateFormatComboBox - > currentIndex ( ) ) ;
deviceDetails - > setCompassGain ( ui . compassGainComboBox - > currentIndex ( ) ) ;
deviceDetails - > setSyncTime ( ui . dateTimeSyncCheckBox - > isChecked ( ) ) ;
2014-10-17 22:33:43 +00:00
deviceDetails - > setSafetyStop ( ui . safetyStopCheckBox - > isChecked ( ) ) ;
deviceDetails - > setGfHigh ( ui . gfHighSpinBox - > value ( ) ) ;
deviceDetails - > setGfLow ( ui . gfLowSpinBox - > value ( ) ) ;
deviceDetails - > setPressureSensorOffset ( ui . pressureSensorOffsetSpinBox - > value ( ) ) ;
deviceDetails - > setPpO2Min ( ui . ppO2MinSpinBox - > value ( ) ) ;
deviceDetails - > setPpO2Max ( ui . ppO2MaxSpinBox - > value ( ) ) ;
deviceDetails - > setFutureTTS ( ui . futureTTSSpinBox - > value ( ) ) ;
deviceDetails - > setCcrMode ( ui . ccrModeComboBox - > currentIndex ( ) ) ;
deviceDetails - > setDecoType ( ui . decoTypeComboBox - > currentIndex ( ) ) ;
deviceDetails - > setAGFSelectable ( ui . aGFSelectableCheckBox - > isChecked ( ) ) ;
deviceDetails - > setAGFHigh ( ui . aGFHighSpinBox - > value ( ) ) ;
deviceDetails - > setAGFLow ( ui . aGFLowSpinBox - > value ( ) ) ;
deviceDetails - > setCalibrationGas ( ui . calibrationGasSpinBox - > value ( ) ) ;
deviceDetails - > setFlipScreen ( ui . flipScreenCheckBox - > isChecked ( ) ) ;
deviceDetails - > setSetPointFallback ( ui . setPointFallbackCheckBox - > isChecked ( ) ) ;
2014-06-21 06:14:55 +00:00
//set gas values
gas gas1 ;
gas gas2 ;
gas gas3 ;
gas gas4 ;
gas gas5 ;
2014-10-15 23:13:53 +00:00
gas1 . oxygen = GET_INT_FROM ( ui . ostc3GasTable - > item ( 0 , 1 ) , 21 ) ;
gas1 . helium = GET_INT_FROM ( ui . ostc3GasTable - > item ( 0 , 2 ) , 0 ) ;
gas1 . type = GET_INT_FROM ( ui . ostc3GasTable - > item ( 0 , 3 ) , 0 ) ;
gas1 . depth = GET_INT_FROM ( ui . ostc3GasTable - > item ( 0 , 4 ) , 0 ) ;
2014-06-21 06:14:55 +00:00
2014-10-15 23:13:53 +00:00
gas2 . oxygen = GET_INT_FROM ( ui . ostc3GasTable - > item ( 1 , 1 ) , 21 ) ;
gas2 . helium = GET_INT_FROM ( ui . ostc3GasTable - > item ( 1 , 2 ) , 0 ) ;
gas2 . type = GET_INT_FROM ( ui . ostc3GasTable - > item ( 1 , 3 ) , 0 ) ;
gas2 . depth = GET_INT_FROM ( ui . ostc3GasTable - > item ( 1 , 4 ) , 0 ) ;
2014-06-21 06:14:55 +00:00
2014-10-15 23:13:53 +00:00
gas3 . oxygen = GET_INT_FROM ( ui . ostc3GasTable - > item ( 2 , 1 ) , 21 ) ;
gas3 . helium = GET_INT_FROM ( ui . ostc3GasTable - > item ( 2 , 2 ) , 0 ) ;
gas3 . type = GET_INT_FROM ( ui . ostc3GasTable - > item ( 2 , 3 ) , 0 ) ;
gas3 . depth = GET_INT_FROM ( ui . ostc3GasTable - > item ( 2 , 4 ) , 0 ) ;
2014-06-21 06:14:55 +00:00
2014-10-15 23:13:53 +00:00
gas4 . oxygen = GET_INT_FROM ( ui . ostc3GasTable - > item ( 3 , 1 ) , 21 ) ;
gas4 . helium = GET_INT_FROM ( ui . ostc3GasTable - > item ( 3 , 2 ) , 0 ) ;
gas4 . type = GET_INT_FROM ( ui . ostc3GasTable - > item ( 3 , 3 ) , 0 ) ;
gas4 . depth = GET_INT_FROM ( ui . ostc3GasTable - > item ( 3 , 4 ) , 0 ) ;
2014-06-21 06:14:55 +00:00
2014-10-15 23:13:53 +00:00
gas5 . oxygen = GET_INT_FROM ( ui . ostc3GasTable - > item ( 4 , 1 ) , 21 ) ;
gas5 . helium = GET_INT_FROM ( ui . ostc3GasTable - > item ( 4 , 2 ) , 0 ) ;
gas5 . type = GET_INT_FROM ( ui . ostc3GasTable - > item ( 4 , 3 ) , 0 ) ;
gas5 . depth = GET_INT_FROM ( ui . ostc3GasTable - > item ( 4 , 4 ) , 0 ) ;
2014-06-21 06:14:55 +00:00
deviceDetails - > setGas1 ( gas1 ) ;
deviceDetails - > setGas2 ( gas2 ) ;
deviceDetails - > setGas3 ( gas3 ) ;
deviceDetails - > setGas4 ( gas4 ) ;
deviceDetails - > setGas5 ( gas5 ) ;
2014-06-21 06:53:05 +00:00
//set dil values
gas dil1 ;
gas dil2 ;
gas dil3 ;
gas dil4 ;
gas dil5 ;
2014-10-15 23:13:53 +00:00
dil1 . oxygen = GET_INT_FROM ( ui . ostc3DilTable - > item ( 0 , 1 ) , 21 ) ;
dil1 . helium = GET_INT_FROM ( ui . ostc3DilTable - > item ( 0 , 2 ) , 0 ) ;
dil1 . type = GET_INT_FROM ( ui . ostc3DilTable - > item ( 0 , 3 ) , 0 ) ;
dil1 . depth = GET_INT_FROM ( ui . ostc3DilTable - > item ( 0 , 4 ) , 0 ) ;
2014-06-21 06:53:05 +00:00
2014-10-15 23:13:53 +00:00
dil2 . oxygen = GET_INT_FROM ( ui . ostc3DilTable - > item ( 1 , 1 ) , 21 ) ;
dil2 . helium = GET_INT_FROM ( ui . ostc3DilTable - > item ( 1 , 2 ) , 0 ) ;
dil2 . type = GET_INT_FROM ( ui . ostc3DilTable - > item ( 1 , 3 ) , 0 ) ;
2014-12-29 04:56:58 +00:00
dil2 . depth = GET_INT_FROM ( ui . ostc3DilTable - > item ( 1 , 4 ) , 0 ) ;
2014-06-21 06:53:05 +00:00
2014-10-15 23:13:53 +00:00
dil3 . oxygen = GET_INT_FROM ( ui . ostc3DilTable - > item ( 2 , 1 ) , 21 ) ;
dil3 . helium = GET_INT_FROM ( ui . ostc3DilTable - > item ( 2 , 2 ) , 0 ) ;
dil3 . type = GET_INT_FROM ( ui . ostc3DilTable - > item ( 2 , 3 ) , 0 ) ;
dil3 . depth = GET_INT_FROM ( ui . ostc3DilTable - > item ( 2 , 4 ) , 0 ) ;
2014-06-21 06:53:05 +00:00
2014-10-15 23:13:53 +00:00
dil4 . oxygen = GET_INT_FROM ( ui . ostc3DilTable - > item ( 3 , 1 ) , 21 ) ;
dil4 . helium = GET_INT_FROM ( ui . ostc3DilTable - > item ( 3 , 2 ) , 0 ) ;
dil4 . type = GET_INT_FROM ( ui . ostc3DilTable - > item ( 3 , 3 ) , 0 ) ;
dil4 . depth = GET_INT_FROM ( ui . ostc3DilTable - > item ( 3 , 4 ) , 0 ) ;
2014-06-21 06:53:05 +00:00
2014-10-15 23:13:53 +00:00
dil5 . oxygen = GET_INT_FROM ( ui . ostc3DilTable - > item ( 4 , 1 ) , 21 ) ;
dil5 . helium = GET_INT_FROM ( ui . ostc3DilTable - > item ( 4 , 2 ) , 0 ) ;
dil5 . type = GET_INT_FROM ( ui . ostc3DilTable - > item ( 4 , 3 ) , 0 ) ;
dil5 . depth = GET_INT_FROM ( ui . ostc3DilTable - > item ( 4 , 4 ) , 0 ) ;
2014-06-21 06:53:05 +00:00
deviceDetails - > setDil1 ( dil1 ) ;
deviceDetails - > setDil2 ( dil2 ) ;
deviceDetails - > setDil3 ( dil3 ) ;
deviceDetails - > setDil4 ( dil4 ) ;
deviceDetails - > setDil5 ( dil5 ) ;
2014-06-21 07:22:47 +00:00
//set set point details
setpoint sp1 ;
setpoint sp2 ;
setpoint sp3 ;
setpoint sp4 ;
setpoint sp5 ;
2014-10-15 23:13:53 +00:00
sp1 . sp = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 0 , 1 ) , 70 ) ;
sp1 . depth = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 0 , 2 ) , 0 ) ;
2014-06-21 07:22:47 +00:00
2014-10-15 23:13:53 +00:00
sp2 . sp = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 1 , 1 ) , 90 ) ;
sp2 . depth = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 1 , 2 ) , 20 ) ;
2014-06-21 07:22:47 +00:00
2014-10-15 23:13:53 +00:00
sp3 . sp = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 2 , 1 ) , 100 ) ;
sp3 . depth = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 2 , 2 ) , 33 ) ;
2014-06-21 07:22:47 +00:00
2014-10-15 23:13:53 +00:00
sp4 . sp = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 3 , 1 ) , 120 ) ;
sp4 . depth = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 3 , 2 ) , 50 ) ;
2014-06-21 07:22:47 +00:00
2014-10-15 23:13:53 +00:00
sp5 . sp = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 4 , 1 ) , 140 ) ;
sp5 . depth = GET_INT_FROM ( ui . ostc3SetPointTable - > item ( 4 , 2 ) , 70 ) ;
2014-10-10 05:34:13 +00:00
deviceDetails - > setSp1 ( sp1 ) ;
deviceDetails - > setSp2 ( sp2 ) ;
deviceDetails - > setSp3 ( sp3 ) ;
deviceDetails - > setSp4 ( sp4 ) ;
deviceDetails - > setSp5 ( sp5 ) ;
2014-06-10 16:19:28 +00:00
}
2014-10-27 20:54:57 +00:00
void ConfigureDiveComputerDialog : : populateDeviceDetailsOSTC ( )
{
deviceDetails - > setCustomText ( ui . customTextLlineEdit_3 - > text ( ) ) ;
deviceDetails - > setSaturation ( ui . saturationSpinBox_3 - > value ( ) ) ;
deviceDetails - > setDesaturation ( ui . desaturationSpinBox_3 - > value ( ) ) ;
deviceDetails - > setLastDeco ( ui . lastDecoSpinBox_3 - > value ( ) ) ;
2014-10-27 20:54:58 +00:00
deviceDetails - > setSamplingRate ( ui . samplingRateSpinBox_3 - > value ( ) ) ;
2014-10-27 20:54:59 +00:00
deviceDetails - > setSalinity ( ui . salinityDoubleSpinBox_3 - > value ( ) * 100 ) ;
2014-10-27 20:54:57 +00:00
deviceDetails - > setDateFormat ( ui . dateFormatComboBox_3 - > currentIndex ( ) ) ;
deviceDetails - > setSyncTime ( ui . dateTimeSyncCheckBox_3 - > isChecked ( ) ) ;
deviceDetails - > setSafetyStop ( ui . safetyStopCheckBox_3 - > isChecked ( ) ) ;
deviceDetails - > setGfHigh ( ui . gfHighSpinBox_3 - > value ( ) ) ;
deviceDetails - > setGfLow ( ui . gfLowSpinBox_3 - > value ( ) ) ;
deviceDetails - > setPpO2Min ( ui . ppO2MinSpinBox_3 - > value ( ) ) ;
deviceDetails - > setPpO2Max ( ui . ppO2MaxSpinBox_3 - > value ( ) ) ;
deviceDetails - > setFutureTTS ( ui . futureTTSSpinBox_3 - > value ( ) ) ;
deviceDetails - > setDecoType ( ui . decoTypeComboBox_3 - > currentIndex ( ) ) ;
deviceDetails - > setAGFSelectable ( ui . aGFSelectableCheckBox_3 - > isChecked ( ) ) ;
deviceDetails - > setAGFHigh ( ui . aGFHighSpinBox_3 - > value ( ) ) ;
deviceDetails - > setAGFLow ( ui . aGFLowSpinBox_3 - > value ( ) ) ;
//set gas values
gas gas1 ;
gas gas2 ;
gas gas3 ;
gas gas4 ;
gas gas5 ;
gas1 . oxygen = GET_INT_FROM ( ui . ostcGasTable - > item ( 0 , 1 ) , 21 ) ;
gas1 . helium = GET_INT_FROM ( ui . ostcGasTable - > item ( 0 , 2 ) , 0 ) ;
gas1 . type = GET_INT_FROM ( ui . ostcGasTable - > item ( 0 , 3 ) , 0 ) ;
gas1 . depth = GET_INT_FROM ( ui . ostcGasTable - > item ( 0 , 4 ) , 0 ) ;
gas2 . oxygen = GET_INT_FROM ( ui . ostcGasTable - > item ( 1 , 1 ) , 21 ) ;
gas2 . helium = GET_INT_FROM ( ui . ostcGasTable - > item ( 1 , 2 ) , 0 ) ;
gas2 . type = GET_INT_FROM ( ui . ostcGasTable - > item ( 1 , 3 ) , 0 ) ;
gas2 . depth = GET_INT_FROM ( ui . ostcGasTable - > item ( 1 , 4 ) , 0 ) ;
gas3 . oxygen = GET_INT_FROM ( ui . ostcGasTable - > item ( 2 , 1 ) , 21 ) ;
gas3 . helium = GET_INT_FROM ( ui . ostcGasTable - > item ( 2 , 2 ) , 0 ) ;
gas3 . type = GET_INT_FROM ( ui . ostcGasTable - > item ( 2 , 3 ) , 0 ) ;
gas3 . depth = GET_INT_FROM ( ui . ostcGasTable - > item ( 2 , 4 ) , 0 ) ;
gas4 . oxygen = GET_INT_FROM ( ui . ostcGasTable - > item ( 3 , 1 ) , 21 ) ;
gas4 . helium = GET_INT_FROM ( ui . ostcGasTable - > item ( 3 , 2 ) , 0 ) ;
gas4 . type = GET_INT_FROM ( ui . ostcGasTable - > item ( 3 , 3 ) , 0 ) ;
gas4 . depth = GET_INT_FROM ( ui . ostcGasTable - > item ( 3 , 4 ) , 0 ) ;
gas5 . oxygen = GET_INT_FROM ( ui . ostcGasTable - > item ( 4 , 1 ) , 21 ) ;
gas5 . helium = GET_INT_FROM ( ui . ostcGasTable - > item ( 4 , 2 ) , 0 ) ;
gas5 . type = GET_INT_FROM ( ui . ostcGasTable - > item ( 4 , 3 ) , 0 ) ;
gas5 . depth = GET_INT_FROM ( ui . ostcGasTable - > item ( 4 , 4 ) , 0 ) ;
deviceDetails - > setGas1 ( gas1 ) ;
deviceDetails - > setGas2 ( gas2 ) ;
deviceDetails - > setGas3 ( gas3 ) ;
deviceDetails - > setGas4 ( gas4 ) ;
deviceDetails - > setGas5 ( gas5 ) ;
//set dil values
gas dil1 ;
gas dil2 ;
gas dil3 ;
gas dil4 ;
gas dil5 ;
dil1 . oxygen = GET_INT_FROM ( ui . ostcDilTable - > item ( 0 , 1 ) , 21 ) ;
dil1 . helium = GET_INT_FROM ( ui . ostcDilTable - > item ( 0 , 2 ) , 0 ) ;
dil1 . type = GET_INT_FROM ( ui . ostcDilTable - > item ( 0 , 3 ) , 0 ) ;
dil1 . depth = GET_INT_FROM ( ui . ostcDilTable - > item ( 0 , 4 ) , 0 ) ;
dil2 . oxygen = GET_INT_FROM ( ui . ostcDilTable - > item ( 1 , 1 ) , 21 ) ;
dil2 . helium = GET_INT_FROM ( ui . ostcDilTable - > item ( 1 , 2 ) , 0 ) ;
dil2 . type = GET_INT_FROM ( ui . ostcDilTable - > item ( 1 , 3 ) , 0 ) ;
2014-12-29 04:56:58 +00:00
dil2 . depth = GET_INT_FROM ( ui . ostcDilTable - > item ( 1 , 4 ) , 0 ) ;
2014-10-27 20:54:57 +00:00
dil3 . oxygen = GET_INT_FROM ( ui . ostcDilTable - > item ( 2 , 1 ) , 21 ) ;
dil3 . helium = GET_INT_FROM ( ui . ostcDilTable - > item ( 2 , 2 ) , 0 ) ;
dil3 . type = GET_INT_FROM ( ui . ostcDilTable - > item ( 2 , 3 ) , 0 ) ;
dil3 . depth = GET_INT_FROM ( ui . ostcDilTable - > item ( 2 , 4 ) , 0 ) ;
dil4 . oxygen = GET_INT_FROM ( ui . ostcDilTable - > item ( 3 , 1 ) , 21 ) ;
dil4 . helium = GET_INT_FROM ( ui . ostcDilTable - > item ( 3 , 2 ) , 0 ) ;
dil4 . type = GET_INT_FROM ( ui . ostcDilTable - > item ( 3 , 3 ) , 0 ) ;
dil4 . depth = GET_INT_FROM ( ui . ostcDilTable - > item ( 3 , 4 ) , 0 ) ;
dil5 . oxygen = GET_INT_FROM ( ui . ostcDilTable - > item ( 4 , 1 ) , 21 ) ;
dil5 . helium = GET_INT_FROM ( ui . ostcDilTable - > item ( 4 , 2 ) , 0 ) ;
dil5 . type = GET_INT_FROM ( ui . ostcDilTable - > item ( 4 , 3 ) , 0 ) ;
dil5 . depth = GET_INT_FROM ( ui . ostcDilTable - > item ( 4 , 4 ) , 0 ) ;
deviceDetails - > setDil1 ( dil1 ) ;
deviceDetails - > setDil2 ( dil2 ) ;
deviceDetails - > setDil3 ( dil3 ) ;
deviceDetails - > setDil4 ( dil4 ) ;
deviceDetails - > setDil5 ( dil5 ) ;
//set set point details
setpoint sp1 ;
setpoint sp2 ;
setpoint sp3 ;
setpoint sp4 ;
setpoint sp5 ;
sp1 . sp = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 0 , 1 ) , 70 ) ;
sp1 . depth = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 0 , 2 ) , 0 ) ;
sp2 . sp = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 1 , 1 ) , 90 ) ;
sp2 . depth = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 1 , 2 ) , 20 ) ;
sp3 . sp = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 2 , 1 ) , 100 ) ;
sp3 . depth = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 2 , 2 ) , 33 ) ;
sp4 . sp = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 3 , 1 ) , 120 ) ;
sp4 . depth = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 3 , 2 ) , 50 ) ;
sp5 . sp = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 4 , 1 ) , 140 ) ;
sp5 . depth = GET_INT_FROM ( ui . ostcSetPointTable - > item ( 4 , 2 ) , 70 ) ;
deviceDetails - > setSp1 ( sp1 ) ;
deviceDetails - > setSp2 ( sp2 ) ;
deviceDetails - > setSp3 ( sp3 ) ;
deviceDetails - > setSp4 ( sp4 ) ;
deviceDetails - > setSp5 ( sp5 ) ;
}
2014-10-12 14:51:30 +00:00
void ConfigureDiveComputerDialog : : populateDeviceDetailsSuuntoVyper ( )
{
2014-10-15 23:13:53 +00:00
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 ( ) ) ;
2014-10-12 14:51:30 +00:00
}
2014-05-30 06:56:27 +00:00
void ConfigureDiveComputerDialog : : readSettings ( )
{
2014-10-15 23:13:53 +00:00
ui . statusLabel - > clear ( ) ;
ui . errorLabel - > clear ( ) ;
2014-05-30 06:56:27 +00:00
getDeviceData ( ) ;
2014-06-10 15:25:25 +00:00
config - > readSettings ( & device_data ) ;
2014-05-30 06:56:27 +00:00
}
2014-10-17 22:33:47 +00:00
void ConfigureDiveComputerDialog : : resetSettings ( )
{
ui . statusLabel - > clear ( ) ;
ui . errorLabel - > clear ( ) ;
getDeviceData ( ) ;
config - > resetSettings ( & device_data ) ;
}
2014-05-30 06:56:27 +00:00
void ConfigureDiveComputerDialog : : configMessage ( QString msg )
{
2014-10-15 23:13:53 +00:00
ui . statusLabel - > setText ( msg ) ;
2014-05-30 06:56:27 +00:00
}
void ConfigureDiveComputerDialog : : configError ( QString err )
{
2014-10-15 23:13:53 +00:00
ui . statusLabel - > setText ( " " ) ;
ui . errorLabel - > setText ( err ) ;
2014-05-30 06:56:27 +00:00
}
void ConfigureDiveComputerDialog : : getDeviceData ( )
{
2014-10-15 23:13:53 +00:00
device_data . devname = strdup ( ui . device - > currentText ( ) . toUtf8 ( ) . data ( ) ) ;
2014-06-11 08:47:25 +00:00
device_data . vendor = strdup ( selected_vendor . toUtf8 ( ) . data ( ) ) ;
device_data . product = strdup ( selected_product . toUtf8 ( ) . data ( ) ) ;
2014-05-30 06:56:27 +00:00
2014-06-11 08:47:25 +00:00
device_data . descriptor = descriptorLookup [ selected_vendor + selected_product ] ;
2014-05-30 06:56:27 +00:00
device_data . deviceid = device_data . diveid = 0 ;
set_default_dive_computer_device ( device_data . devname ) ;
}
void ConfigureDiveComputerDialog : : on_cancel_clicked ( )
{
this - > close ( ) ;
}
2014-05-30 07:49:58 +00:00
2014-06-10 12:03:26 +00:00
void ConfigureDiveComputerDialog : : on_saveSettingsPushButton_clicked ( )
2014-05-30 07:49:58 +00:00
{
2014-06-10 16:19:28 +00:00
populateDeviceDetails ( ) ;
2014-06-10 15:25:25 +00:00
getDeviceData ( ) ;
config - > saveDeviceDetails ( deviceDetails , & device_data ) ;
}
void ConfigureDiveComputerDialog : : deviceDetailsReceived ( DeviceDetails * newDeviceDetails )
{
deviceDetails = newDeviceDetails ;
reloadValues ( ) ;
}
void ConfigureDiveComputerDialog : : reloadValues ( )
2014-10-12 14:51:30 +00:00
{
2014-10-15 23:13:51 +00:00
// Enable the buttons to do operations on this data
2014-10-15 23:13:53 +00:00
ui . saveSettingsPushButton - > setEnabled ( true ) ;
ui . backupButton - > setEnabled ( true ) ;
2014-10-15 23:13:51 +00:00
2014-12-29 04:56:58 +00:00
switch ( ui . dcStackedWidget - > currentIndex ( ) ) {
2014-10-12 14:51:30 +00:00
case 0 :
reloadValuesOSTC3 ( ) ;
break ;
case 1 :
reloadValuesSuuntoVyper ( ) ;
break ;
2014-10-27 20:54:57 +00:00
case 2 :
reloadValuesOSTC ( ) ;
break ;
2014-10-12 14:51:30 +00:00
}
}
void ConfigureDiveComputerDialog : : reloadValuesOSTC3 ( )
2014-06-10 15:25:25 +00:00
{
2014-10-15 23:13:53 +00:00
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 . desaturationSpinBox - > setValue ( deviceDetails - > desaturation ( ) ) ;
ui . lastDecoSpinBox - > setValue ( deviceDetails - > lastDeco ( ) ) ;
ui . brightnessComboBox - > setCurrentIndex ( deviceDetails - > brightness ( ) ) ;
ui . unitsComboBox - > setCurrentIndex ( deviceDetails - > units ( ) ) ;
ui . samplingRateComboBox - > setCurrentIndex ( deviceDetails - > samplingRate ( ) ) ;
ui . salinitySpinBox - > setValue ( deviceDetails - > salinity ( ) ) ;
ui . diveModeColour - > setCurrentIndex ( deviceDetails - > diveModeColor ( ) ) ;
ui . languageComboBox - > setCurrentIndex ( deviceDetails - > language ( ) ) ;
ui . dateFormatComboBox - > setCurrentIndex ( deviceDetails - > dateFormat ( ) ) ;
ui . compassGainComboBox - > setCurrentIndex ( deviceDetails - > compassGain ( ) ) ;
2014-10-17 22:33:43 +00:00
ui . safetyStopCheckBox - > setChecked ( deviceDetails - > safetyStop ( ) ) ;
ui . gfHighSpinBox - > setValue ( deviceDetails - > gfHigh ( ) ) ;
ui . gfLowSpinBox - > setValue ( deviceDetails - > gfLow ( ) ) ;
ui . pressureSensorOffsetSpinBox - > setValue ( deviceDetails - > pressureSensorOffset ( ) ) ;
ui . ppO2MinSpinBox - > setValue ( deviceDetails - > ppO2Min ( ) ) ;
ui . ppO2MaxSpinBox - > setValue ( deviceDetails - > ppO2Max ( ) ) ;
ui . futureTTSSpinBox - > setValue ( deviceDetails - > futureTTS ( ) ) ;
ui . ccrModeComboBox - > setCurrentIndex ( deviceDetails - > ccrMode ( ) ) ;
ui . decoTypeComboBox - > setCurrentIndex ( deviceDetails - > decoType ( ) ) ;
ui . aGFSelectableCheckBox - > setChecked ( deviceDetails - > aGFSelectable ( ) ) ;
ui . aGFHighSpinBox - > setValue ( deviceDetails - > aGFHigh ( ) ) ;
ui . aGFLowSpinBox - > setValue ( deviceDetails - > aGFLow ( ) ) ;
ui . calibrationGasSpinBox - > setValue ( deviceDetails - > calibrationGas ( ) ) ;
ui . flipScreenCheckBox - > setChecked ( deviceDetails - > flipScreen ( ) ) ;
ui . setPointFallbackCheckBox - > setChecked ( deviceDetails - > setPointFallback ( ) ) ;
2014-06-20 04:51:32 +00:00
//load gas 1 values
2014-12-29 04:56:58 +00:00
ui . ostc3GasTable - > setItem ( 0 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . oxygen ) ) ) ;
ui . ostc3GasTable - > setItem ( 0 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . helium ) ) ) ;
ui . ostc3GasTable - > setItem ( 0 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . type ) ) ) ;
ui . ostc3GasTable - > setItem ( 0 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . depth ) ) ) ;
2014-06-21 05:46:57 +00:00
//load gas 2 values
2014-12-29 04:56:58 +00:00
ui . ostc3GasTable - > setItem ( 1 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . oxygen ) ) ) ;
ui . ostc3GasTable - > setItem ( 1 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . helium ) ) ) ;
ui . ostc3GasTable - > setItem ( 1 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . type ) ) ) ;
ui . ostc3GasTable - > setItem ( 1 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . depth ) ) ) ;
2014-06-21 05:46:57 +00:00
//load gas 3 values
2014-12-29 04:56:58 +00:00
ui . ostc3GasTable - > setItem ( 2 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . oxygen ) ) ) ;
ui . ostc3GasTable - > setItem ( 2 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . helium ) ) ) ;
ui . ostc3GasTable - > setItem ( 2 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . type ) ) ) ;
ui . ostc3GasTable - > setItem ( 2 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . depth ) ) ) ;
2014-06-21 05:46:57 +00:00
//load gas 4 values
2014-12-29 04:56:58 +00:00
ui . ostc3GasTable - > setItem ( 3 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . oxygen ) ) ) ;
ui . ostc3GasTable - > setItem ( 3 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . helium ) ) ) ;
ui . ostc3GasTable - > setItem ( 3 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . type ) ) ) ;
ui . ostc3GasTable - > setItem ( 3 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . depth ) ) ) ;
2014-06-21 05:46:57 +00:00
//load gas 5 values
2014-12-29 04:56:58 +00:00
ui . ostc3GasTable - > setItem ( 4 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . oxygen ) ) ) ;
ui . ostc3GasTable - > setItem ( 4 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . helium ) ) ) ;
ui . ostc3GasTable - > setItem ( 4 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . type ) ) ) ;
ui . ostc3GasTable - > setItem ( 4 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . depth ) ) ) ;
2014-06-21 06:53:05 +00:00
//load dil 1 values
2014-12-29 04:56:58 +00:00
ui . ostc3DilTable - > setItem ( 0 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . oxygen ) ) ) ;
ui . ostc3DilTable - > setItem ( 0 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . helium ) ) ) ;
ui . ostc3DilTable - > setItem ( 0 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . type ) ) ) ;
ui . ostc3DilTable - > setItem ( 0 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . depth ) ) ) ;
2014-06-21 06:53:05 +00:00
//load dil 2 values
2014-12-29 04:56:58 +00:00
ui . ostc3DilTable - > setItem ( 1 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . oxygen ) ) ) ;
ui . ostc3DilTable - > setItem ( 1 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . helium ) ) ) ;
ui . ostc3DilTable - > setItem ( 1 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . type ) ) ) ;
ui . ostc3DilTable - > setItem ( 1 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . depth ) ) ) ;
2014-06-21 06:53:05 +00:00
//load dil 3 values
2014-12-29 04:56:58 +00:00
ui . ostc3DilTable - > setItem ( 2 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . oxygen ) ) ) ;
ui . ostc3DilTable - > setItem ( 2 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . helium ) ) ) ;
ui . ostc3DilTable - > setItem ( 2 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . type ) ) ) ;
ui . ostc3DilTable - > setItem ( 2 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . depth ) ) ) ;
2014-06-21 06:53:05 +00:00
//load dil 4 values
2014-12-29 04:56:58 +00:00
ui . ostc3DilTable - > setItem ( 3 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . oxygen ) ) ) ;
ui . ostc3DilTable - > setItem ( 3 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . helium ) ) ) ;
ui . ostc3DilTable - > setItem ( 3 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . type ) ) ) ;
ui . ostc3DilTable - > setItem ( 3 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . depth ) ) ) ;
2014-06-21 06:53:05 +00:00
//load dil 5 values
2014-12-29 04:56:58 +00:00
ui . ostc3DilTable - > setItem ( 4 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . oxygen ) ) ) ;
ui . ostc3DilTable - > setItem ( 4 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . helium ) ) ) ;
ui . ostc3DilTable - > setItem ( 4 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . type ) ) ) ;
ui . ostc3DilTable - > setItem ( 4 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . depth ) ) ) ;
2014-06-21 07:22:47 +00:00
//load set point 1 values
2014-10-15 23:13:53 +00:00
ui . ostc3SetPointTable - > setItem ( 0 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp1 ( ) . sp ) ) ) ;
ui . ostc3SetPointTable - > setItem ( 0 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp1 ( ) . depth ) ) ) ;
2014-06-21 07:22:47 +00:00
//load set point 2 values
2014-10-15 23:13:53 +00:00
ui . ostc3SetPointTable - > setItem ( 1 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp2 ( ) . sp ) ) ) ;
ui . ostc3SetPointTable - > setItem ( 1 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp2 ( ) . depth ) ) ) ;
2014-06-21 07:22:47 +00:00
//load set point 3 values
2014-10-15 23:13:53 +00:00
ui . ostc3SetPointTable - > setItem ( 2 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp3 ( ) . sp ) ) ) ;
ui . ostc3SetPointTable - > setItem ( 2 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp3 ( ) . depth ) ) ) ;
2014-06-21 07:22:47 +00:00
//load set point 4 values
2014-10-15 23:13:53 +00:00
ui . ostc3SetPointTable - > setItem ( 3 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp4 ( ) . sp ) ) ) ;
ui . ostc3SetPointTable - > setItem ( 3 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp4 ( ) . depth ) ) ) ;
2014-06-21 07:22:47 +00:00
//load set point 5 values
2014-10-15 23:13:53 +00:00
ui . ostc3SetPointTable - > setItem ( 4 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp5 ( ) . sp ) ) ) ;
ui . ostc3SetPointTable - > setItem ( 4 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp5 ( ) . depth ) ) ) ;
2014-05-30 07:49:58 +00:00
}
2014-06-07 18:56:44 +00:00
2014-10-27 20:54:57 +00:00
void ConfigureDiveComputerDialog : : reloadValuesOSTC ( )
{
2014-12-29 04:56:58 +00:00
/*
2014-10-27 20:54:58 +00:00
# Not in OSTC
setBrightness
setCalibrationGas
setCompassGain
setDiveMode - Bult into setDecoType
setDiveModeColor - Lots of different colors
setFlipScreen
setLanguage
setPressureSensorOffset
setUnits
setSetPointFallback
setCcrMode
# Not in OSTC3
setNumberOfDives
*/
2014-10-27 20:54:57 +00:00
ui . serialNoLineEdit_3 - > setText ( deviceDetails - > serialNo ( ) ) ;
ui . firmwareVersionLineEdit_3 - > setText ( deviceDetails - > firmwareVersion ( ) ) ;
ui . customTextLlineEdit_3 - > setText ( deviceDetails - > customText ( ) ) ;
ui . saturationSpinBox_3 - > setValue ( deviceDetails - > saturation ( ) ) ;
ui . desaturationSpinBox_3 - > setValue ( deviceDetails - > desaturation ( ) ) ;
ui . lastDecoSpinBox_3 - > setValue ( deviceDetails - > lastDeco ( ) ) ;
2014-10-27 20:54:58 +00:00
ui . samplingRateSpinBox_3 - > setValue ( deviceDetails - > samplingRate ( ) ) ;
2014-12-29 04:56:58 +00:00
ui . salinityDoubleSpinBox_3 - > setValue ( ( double ) deviceDetails - > salinity ( ) / 100.0 ) ;
2014-10-27 20:54:57 +00:00
ui . dateFormatComboBox_3 - > setCurrentIndex ( deviceDetails - > dateFormat ( ) ) ;
ui . safetyStopCheckBox_3 - > setChecked ( deviceDetails - > safetyStop ( ) ) ;
ui . gfHighSpinBox_3 - > setValue ( deviceDetails - > gfHigh ( ) ) ;
ui . gfLowSpinBox_3 - > setValue ( deviceDetails - > gfLow ( ) ) ;
ui . ppO2MinSpinBox_3 - > setValue ( deviceDetails - > ppO2Min ( ) ) ;
ui . ppO2MaxSpinBox_3 - > setValue ( deviceDetails - > ppO2Max ( ) ) ;
ui . futureTTSSpinBox_3 - > setValue ( deviceDetails - > futureTTS ( ) ) ;
ui . decoTypeComboBox_3 - > setCurrentIndex ( deviceDetails - > decoType ( ) ) ;
ui . aGFSelectableCheckBox_3 - > setChecked ( deviceDetails - > aGFSelectable ( ) ) ;
ui . aGFHighSpinBox_3 - > setValue ( deviceDetails - > aGFHigh ( ) ) ;
ui . aGFLowSpinBox_3 - > setValue ( deviceDetails - > aGFLow ( ) ) ;
2014-10-27 20:54:58 +00:00
ui . numberOfDivesSpinBox_3 - > setValue ( deviceDetails - > numberOfDives ( ) ) ;
2014-10-27 20:54:57 +00:00
//load gas 1 values
2014-12-29 04:56:58 +00:00
ui . ostcGasTable - > setItem ( 0 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . oxygen ) ) ) ;
ui . ostcGasTable - > setItem ( 0 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . helium ) ) ) ;
ui . ostcGasTable - > setItem ( 0 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . type ) ) ) ;
ui . ostcGasTable - > setItem ( 0 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas1 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load gas 2 values
2014-12-29 04:56:58 +00:00
ui . ostcGasTable - > setItem ( 1 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . oxygen ) ) ) ;
ui . ostcGasTable - > setItem ( 1 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . helium ) ) ) ;
ui . ostcGasTable - > setItem ( 1 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . type ) ) ) ;
ui . ostcGasTable - > setItem ( 1 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas2 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load gas 3 values
2014-12-29 04:56:58 +00:00
ui . ostcGasTable - > setItem ( 2 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . oxygen ) ) ) ;
ui . ostcGasTable - > setItem ( 2 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . helium ) ) ) ;
ui . ostcGasTable - > setItem ( 2 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . type ) ) ) ;
ui . ostcGasTable - > setItem ( 2 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas3 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load gas 4 values
2014-12-29 04:56:58 +00:00
ui . ostcGasTable - > setItem ( 3 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . oxygen ) ) ) ;
ui . ostcGasTable - > setItem ( 3 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . helium ) ) ) ;
ui . ostcGasTable - > setItem ( 3 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . type ) ) ) ;
ui . ostcGasTable - > setItem ( 3 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas4 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load gas 5 values
2014-12-29 04:56:58 +00:00
ui . ostcGasTable - > setItem ( 4 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . oxygen ) ) ) ;
ui . ostcGasTable - > setItem ( 4 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . helium ) ) ) ;
ui . ostcGasTable - > setItem ( 4 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . type ) ) ) ;
ui . ostcGasTable - > setItem ( 4 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > gas5 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load dil 1 values
2014-12-29 04:56:58 +00:00
ui . ostcDilTable - > setItem ( 0 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . oxygen ) ) ) ;
ui . ostcDilTable - > setItem ( 0 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . helium ) ) ) ;
ui . ostcDilTable - > setItem ( 0 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . type ) ) ) ;
ui . ostcDilTable - > setItem ( 0 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil1 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load dil 2 values
2014-12-29 04:56:58 +00:00
ui . ostcDilTable - > setItem ( 1 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . oxygen ) ) ) ;
ui . ostcDilTable - > setItem ( 1 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . helium ) ) ) ;
ui . ostcDilTable - > setItem ( 1 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . type ) ) ) ;
ui . ostcDilTable - > setItem ( 1 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil2 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load dil 3 values
2014-12-29 04:56:58 +00:00
ui . ostcDilTable - > setItem ( 2 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . oxygen ) ) ) ;
ui . ostcDilTable - > setItem ( 2 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . helium ) ) ) ;
ui . ostcDilTable - > setItem ( 2 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . type ) ) ) ;
ui . ostcDilTable - > setItem ( 2 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil3 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load dil 4 values
2014-12-29 04:56:58 +00:00
ui . ostcDilTable - > setItem ( 3 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . oxygen ) ) ) ;
ui . ostcDilTable - > setItem ( 3 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . helium ) ) ) ;
ui . ostcDilTable - > setItem ( 3 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . type ) ) ) ;
ui . ostcDilTable - > setItem ( 3 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil4 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load dil 5 values
2014-12-29 04:56:58 +00:00
ui . ostcDilTable - > setItem ( 4 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . oxygen ) ) ) ;
ui . ostcDilTable - > setItem ( 4 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . helium ) ) ) ;
ui . ostcDilTable - > setItem ( 4 , 3 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . type ) ) ) ;
ui . ostcDilTable - > setItem ( 4 , 4 , new QTableWidgetItem ( QString : : number ( deviceDetails - > dil5 ( ) . depth ) ) ) ;
2014-10-27 20:54:57 +00:00
//load set point 1 values
ui . ostcSetPointTable - > setItem ( 0 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp1 ( ) . sp ) ) ) ;
ui . ostcSetPointTable - > setItem ( 0 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp1 ( ) . depth ) ) ) ;
//load set point 2 values
ui . ostcSetPointTable - > setItem ( 1 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp2 ( ) . sp ) ) ) ;
ui . ostcSetPointTable - > setItem ( 1 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp2 ( ) . depth ) ) ) ;
//load set point 3 values
ui . ostcSetPointTable - > setItem ( 2 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp3 ( ) . sp ) ) ) ;
ui . ostcSetPointTable - > setItem ( 2 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp3 ( ) . depth ) ) ) ;
//load set point 4 values
ui . ostcSetPointTable - > setItem ( 3 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp4 ( ) . sp ) ) ) ;
ui . ostcSetPointTable - > setItem ( 3 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp4 ( ) . depth ) ) ) ;
//load set point 5 values
ui . ostcSetPointTable - > setItem ( 4 , 1 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp5 ( ) . sp ) ) ) ;
ui . ostcSetPointTable - > setItem ( 4 , 2 , new QTableWidgetItem ( QString : : number ( deviceDetails - > sp5 ( ) . depth ) ) ) ;
}
2014-10-12 14:51:30 +00:00
void ConfigureDiveComputerDialog : : reloadValuesSuuntoVyper ( )
{
const char * depth_unit ;
2014-10-15 23:13:53 +00:00
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 ( ) ) ;
2014-10-12 14:51:30 +00:00
}
2014-06-10 16:19:28 +00:00
void ConfigureDiveComputerDialog : : on_backupButton_clicked ( )
{
QString filename = existing_filename ? : prefs . default_filename ;
QFileInfo fi ( filename ) ;
filename = fi . absolutePath ( ) . append ( QDir : : separator ( ) ) . append ( " Backup.xml " ) ;
2014-09-11 21:56:35 +00:00
QString backupPath = QFileDialog : : getSaveFileName ( this , tr ( " Backup dive computer settings " ) ,
2014-12-29 04:56:58 +00:00
filename , tr ( " Backup files (*.xml) " ) ) ;
2014-06-10 16:19:28 +00:00
if ( ! backupPath . isEmpty ( ) ) {
populateDeviceDetails ( ) ;
getDeviceData ( ) ;
2014-07-31 15:51:38 +00:00
if ( ! config - > saveXMLBackup ( backupPath , deviceDetails , & device_data ) ) {
2014-09-11 21:56:35 +00:00
QMessageBox : : critical ( this , tr ( " XML backup error " ) ,
2014-06-11 06:37:27 +00:00
tr ( " An error occurred while saving the backup file. \n %1 " )
2014-12-29 04:56:58 +00:00
. arg ( config - > lastError ) ) ;
2014-06-10 16:19:28 +00:00
} else {
QMessageBox : : information ( this , tr ( " Backup succeeded " ) ,
tr ( " Your settings have been saved to: %1 " )
2014-12-29 04:56:58 +00:00
. arg ( backupPath ) ) ;
2014-06-10 16:19:28 +00:00
}
}
}
2014-06-11 06:37:27 +00:00
void ConfigureDiveComputerDialog : : on_restoreBackupButton_clicked ( )
{
QString filename = existing_filename ? : prefs . default_filename ;
QFileInfo fi ( filename ) ;
filename = fi . absolutePath ( ) . append ( QDir : : separator ( ) ) . append ( " Backup.xml " ) ;
2014-09-11 21:56:35 +00:00
QString restorePath = QFileDialog : : getOpenFileName ( this , tr ( " Restore dive computer settings " ) ,
2014-12-29 04:56:58 +00:00
filename , tr ( " Backup files (*.xml) " ) ) ;
2014-06-11 06:37:27 +00:00
if ( ! restorePath . isEmpty ( ) ) {
2014-07-31 15:51:38 +00:00
if ( ! config - > restoreXMLBackup ( restorePath , deviceDetails ) ) {
2014-09-11 21:56:35 +00:00
QMessageBox : : critical ( this , tr ( " XML restore error " ) ,
2014-06-11 06:37:27 +00:00
tr ( " An error occurred while restoring the backup file. \n %1 " )
2014-12-29 04:56:58 +00:00
. arg ( config - > lastError ) ) ;
2014-06-11 06:37:27 +00:00
} else {
reloadValues ( ) ;
//getDeviceData();
//config->saveDeviceDetails(deviceDetails, &device_data);
QMessageBox : : information ( this , tr ( " Restore succeeded " ) ,
2014-12-29 04:56:58 +00:00
tr ( " Your settings have been restored successfully. " ) ) ;
2014-06-11 06:37:27 +00:00
}
}
}
2014-06-11 08:47:25 +00:00
2014-06-23 15:16:27 +00:00
void ConfigureDiveComputerDialog : : on_updateFirmwareButton_clicked ( )
{
QString filename = existing_filename ? : prefs . default_filename ;
QFileInfo fi ( filename ) ;
filename = fi . absolutePath ( ) ;
QString firmwarePath = QFileDialog : : getOpenFileName ( this , tr ( " Select firmware file " ) ,
2014-12-29 04:56:58 +00:00
filename , tr ( " All files (*.*) " ) ) ;
2014-06-23 15:16:27 +00:00
if ( ! firmwarePath . isEmpty ( ) ) {
getDeviceData ( ) ;
2014-07-31 15:51:38 +00:00
config - > startFirmwareUpdate ( firmwarePath , & device_data ) ;
2014-06-23 15:16:27 +00:00
}
}
2014-07-16 09:04:54 +00:00
2014-12-28 18:22:46 +00:00
2014-07-16 09:04:54 +00:00
void ConfigureDiveComputerDialog : : on_DiveComputerList_currentRowChanged ( int currentRow )
{
2014-10-15 23:13:51 +00:00
// Disable the buttons to do operations on this data
2014-10-15 23:13:53 +00:00
ui . saveSettingsPushButton - > setEnabled ( false ) ;
ui . backupButton - > setEnabled ( false ) ;
2014-10-15 23:13:51 +00:00
2014-07-16 09:04:54 +00:00
switch ( currentRow ) {
case 0 :
selected_vendor = " Heinrichs Weikamp " ;
selected_product = " OSTC 3 " ;
2014-12-22 22:03:51 +00:00
ui . updateFirmwareButton - > setEnabled ( true ) ;
2014-07-16 09:04:54 +00:00
break ;
2014-10-12 14:51:29 +00:00
case 1 :
selected_vendor = " Suunto " ;
selected_product = " Vyper " ;
2014-10-15 23:13:53 +00:00
ui . updateFirmwareButton - > setEnabled ( false ) ;
2014-10-12 14:51:29 +00:00
break ;
2014-10-20 20:58:25 +00:00
case 2 :
selected_vendor = " Heinrichs Weikamp " ;
selected_product = " OSTC 2N " ;
ui . updateFirmwareButton - > setEnabled ( true ) ;
break ;
2014-10-12 14:51:29 +00:00
default :
/* Not Supported */
return ;
2014-07-16 09:04:54 +00:00
}
int dcType = DC_TYPE_SERIAL ;
if ( selected_vendor = = QString ( " Uemis " ) )
dcType = DC_TYPE_UEMIS ;
fill_device_list ( dcType ) ;
}