aboutsummaryrefslogtreecommitdiffstats
path: root/subsurface-core/configuredivecomputerthreads.cpp
diff options
context:
space:
mode:
authorGravatar Anton Lundin <glance@acc.umu.se>2016-01-22 14:17:49 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-22 06:50:18 -0800
commit91a72f45d4e4f46061b1df514617472e1ff57ecb (patch)
treebcd6285730dc035a2a9f0b34493a32123c86b515 /subsurface-core/configuredivecomputerthreads.cpp
parent128fc39274791525113bee5ac7882352beb8cb70 (diff)
downloadsubsurface-91a72f45d4e4f46061b1df514617472e1ff57ecb.tar.gz
configure OSTC3: Add temperature sensor offset
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'subsurface-core/configuredivecomputerthreads.cpp')
-rw-r--r--subsurface-core/configuredivecomputerthreads.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/subsurface-core/configuredivecomputerthreads.cpp b/subsurface-core/configuredivecomputerthreads.cpp
index e681649e3..7c5c7b9d5 100644
--- a/subsurface-core/configuredivecomputerthreads.cpp
+++ b/subsurface-core/configuredivecomputerthreads.cpp
@@ -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;