The OSTC3 stores the pressure sensor offset as a signed 8-bit integer.

Signed-off-by: Anton Lundin <[email protected]>
---
 configuredivecomputerthreads.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/configuredivecomputerthreads.cpp b/configuredivecomputerthreads.cpp
index a8465d7..57bb122 100644
--- a/configuredivecomputerthreads.cpp
+++ b/configuredivecomputerthreads.cpp
@@ -408,7 +408,6 @@ void ReadSettingsThread::run()
                        READ_SETTING(OSTC3_SAFETY_STOP, setSafetyStop)
                        READ_SETTING(OSTC3_GF_HIGH, setGfHigh)
                        READ_SETTING(OSTC3_GF_LOW, setGfLow)
-                       READ_SETTING(OSTC3_PRESSURE_SENSOR_OFFSET, 
setPressureSensorOffset)
                        READ_SETTING(OSTC3_PPO2_MIN, setPpO2Min)
                        READ_SETTING(OSTC3_PPO2_MAX, setPpO2Max)
                        READ_SETTING(OSTC3_FUTURE_TTS, setFutureTTS)
@@ -423,6 +422,13 @@ void ReadSettingsThread::run()
 
 #undef READ_SETTING
 
+                       rc = hw_ostc3_device_config_read(m_data->device, 
OSTC3_PRESSURE_SENSOR_OFFSET, uData, sizeof(uData));
+                       if (rc == DC_STATUS_SUCCESS) {
+                               // OSTC3 stores the pressureSensorOffset in 
two-complement
+                               
m_deviceDetails->setPressureSensorOffset((signed char) uData[0]);
+                               qDebug() << 
m_deviceDetails->pressureSensorOffset() << uData[0];
+                       }
+
                        //read firmware settings
                        unsigned char fData[64] = {0};
                        rc = hw_ostc3_device_version (m_data->device, fData, 
sizeof (fData));
@@ -636,7 +642,6 @@ void WriteSettingsThread::run()
                        WRITE_SETTING(OSTC3_SAFETY_STOP, safetyStop)
                        WRITE_SETTING(OSTC3_GF_HIGH, gfHigh)
                        WRITE_SETTING(OSTC3_GF_LOW, gfLow)
-                       WRITE_SETTING(OSTC3_PRESSURE_SENSOR_OFFSET, 
pressureSensorOffset)
                        WRITE_SETTING(OSTC3_PPO2_MIN, ppO2Min)
                        WRITE_SETTING(OSTC3_PPO2_MAX, ppO2Max)
                        WRITE_SETTING(OSTC3_FUTURE_TTS, futureTTS)
@@ -651,6 +656,10 @@ void WriteSettingsThread::run()
 
 #undef WRITE_SETTING
 
+                       // OSTC3 stores the pressureSensorOffset in 
two-complement
+                       data[0] = (unsigned char) 
m_deviceDetails->pressureSensorOffset();
+                       hw_ostc3_device_config_write(m_data->device, 
OSTC3_PRESSURE_SENSOR_OFFSET, data, sizeof(data));
+
                        //sync date and time
                        if (m_deviceDetails->syncTime()) {
                                QDateTime timeToSet = 
QDateTime::currentDateTime();
-- 
1.9.1

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to