mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	configure OSTC3: Add temperature sensor offset
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									128fc39274
								
							
						
					
					
						commit
						91a72f45d4
					
				
					 5 changed files with 48 additions and 3 deletions
				
			
		|  | @ -470,6 +470,7 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3() | |||
| 	deviceDetails->dynamicAscendRate = ui.dynamicAscendRate->isChecked(); | ||||
| 	deviceDetails->graphicalSpeedIndicator = ui.graphicalSpeedIndicator->isChecked(); | ||||
| 	deviceDetails->alwaysShowppO2 = ui.alwaysShowppO2->isChecked(); | ||||
| 	deviceDetails->tempSensorOffset = ui.tempSensorOffsetDoubleSpinBox->value() * 10; | ||||
| 
 | ||||
| 	//set gas values
 | ||||
| 	gas gas1; | ||||
|  | @ -845,6 +846,7 @@ void ConfigureDiveComputerDialog::reloadValuesOSTC3() | |||
| 	ui.dynamicAscendRate->setChecked(deviceDetails->dynamicAscendRate); | ||||
| 	ui.graphicalSpeedIndicator->setChecked(deviceDetails->graphicalSpeedIndicator); | ||||
| 	ui.alwaysShowppO2->setChecked(deviceDetails->alwaysShowppO2); | ||||
| 	ui.tempSensorOffsetDoubleSpinBox->setValue((double)deviceDetails->tempSensorOffset / 10.0); | ||||
| 
 | ||||
| 	//load gas 1 values
 | ||||
| 	ui.ostc3GasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->gas1.oxygen))); | ||||
|  |  | |||
|  | @ -1043,6 +1043,32 @@ | |||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
|             <item row="14" column="3"> | ||||
|              <widget class="QLabel" name="label_71"> | ||||
|               <property name="text"> | ||||
|                <string>Temperature sensor offset</string> | ||||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
|             <item row="14" column="4"> | ||||
|              <widget class="QDoubleSpinBox" name="tempSensorOffsetDoubleSpinBox"> | ||||
|               <property name="suffix"> | ||||
|                <string>°C</string> | ||||
|               </property> | ||||
|               <property name="decimals"> | ||||
|                <number>1</number> | ||||
|               </property> | ||||
|               <property name="minimum"> | ||||
|                <double>-2.000000000000000</double> | ||||
|               </property> | ||||
|               <property name="maximum"> | ||||
|                <double>2.000000000000000</double> | ||||
|               </property> | ||||
|               <property name="singleStep"> | ||||
|                <double>0.100000000000000</double> | ||||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
|            </layout> | ||||
|           </widget> | ||||
|           <widget class="QWidget" name="gasSettings"> | ||||
|  |  | |||
|  | @ -52,6 +52,7 @@ | |||
| #define OSTC3_DYNAMIC_ASCEND_RATE	0x3F | ||||
| #define OSTC3_GRAPHICAL_SPEED_INDICATOR	0x40 | ||||
| #define OSTC3_ALWAYS_SHOW_PPO2		0x41 | ||||
| #define OSTC3_TEMP_SENSOR_OFFSET	0x42 | ||||
| 
 | ||||
| #define OSTC3_HW_OSTC_3			0x0A | ||||
| #define OSTC3_HW_OSTC_3P		0x1A | ||||
|  | @ -406,7 +407,7 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev | |||
| 	dc_status_t rc; | ||||
| 	dc_event_progress_t progress; | ||||
| 	progress.current = 0; | ||||
| 	progress.maximum = 52; | ||||
| 	progress.maximum = 53; | ||||
| 	unsigned char hardware[1]; | ||||
| 
 | ||||
| 	//Read hardware type
 | ||||
|  | @ -659,6 +660,13 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev | |||
| 	m_deviceDetails->pressureSensorOffset = (signed char)uData[0]; | ||||
| 	EMIT_PROGRESS(); | ||||
| 
 | ||||
| 	rc = hw_ostc3_device_config_read(device, OSTC3_TEMP_SENSOR_OFFSET, uData, sizeof(uData)); | ||||
| 	if (rc != DC_STATUS_SUCCESS) | ||||
| 		return rc; | ||||
| 	// OSTC3 stores the tempSensorOffset in two-complement
 | ||||
| 	m_deviceDetails->tempSensorOffset = (signed char)uData[0]; | ||||
| 	EMIT_PROGRESS(); | ||||
| 
 | ||||
| 	//read firmware settings
 | ||||
| 	unsigned char fData[64] = { 0 }; | ||||
| 	rc = hw_ostc3_device_version(device, fData, sizeof(fData)); | ||||
|  | @ -679,7 +687,7 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de | |||
| 	dc_status_t rc; | ||||
| 	dc_event_progress_t progress; | ||||
| 	progress.current = 0; | ||||
| 	progress.maximum = 51; | ||||
| 	progress.maximum = 56; | ||||
| 
 | ||||
| 	//write gas values
 | ||||
| 	unsigned char gas1Data[4] = { | ||||
|  | @ -915,6 +923,13 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de | |||
| 		return rc; | ||||
| 	EMIT_PROGRESS(); | ||||
| 
 | ||||
| 	// OSTC3 stores the tempSensorOffset in two-complement
 | ||||
| 	data[0] = (unsigned char)m_deviceDetails->pressureSensorOffset; | ||||
| 	rc = hw_ostc3_device_config_write(device, OSTC3_TEMP_SENSOR_OFFSET, data, sizeof(data)); | ||||
| 	if (rc != DC_STATUS_SUCCESS) | ||||
| 		return rc; | ||||
| 	EMIT_PROGRESS(); | ||||
| 
 | ||||
| 	//sync date and time
 | ||||
| 	if (m_deviceDetails->syncTime) { | ||||
| 		dc_datetime_t now; | ||||
|  |  | |||
|  | @ -73,6 +73,7 @@ DeviceDetails::DeviceDetails(QObject *parent) : | |||
| 	modWarning(false), | ||||
| 	dynamicAscendRate(false), | ||||
| 	graphicalSpeedIndicator(false), | ||||
| 	alwaysShowppO2(false) | ||||
| 	alwaysShowppO2(false), | ||||
| 	tempSensorOffset(0) | ||||
| { | ||||
| } | ||||
|  |  | |||
|  | @ -91,6 +91,7 @@ public: | |||
| 	bool dynamicAscendRate; | ||||
| 	bool graphicalSpeedIndicator; | ||||
| 	bool alwaysShowppO2; | ||||
| 	int tempSensorOffset; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue