Since the setpoint value is initialized as zero, we have to set the
previous value if we do not have a current reading.

Signed-off-by: Miika Turkia <[email protected]>
---
 file.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/file.c b/file.c
index 1751015..77fca04 100644
--- a/file.c
+++ b/file.c
@@ -450,8 +450,8 @@ int parse_txt_file(const char *filename, const char *csv)
        if (MATCH(memtxt.buffer, "MkVI_Config") == 0) {
                int d, m, y;
                int hh = 0, mm = 0, ss = 0;
-               int prev_depth = 0, cur_sampletime = 0;
-               bool has_depth = false;
+               int prev_depth = 0, cur_sampletime = 0, prev_setpoint;
+               bool has_depth = false, has_setpoint = false;
                char *lineptr;
 
                struct dive *dive;
@@ -522,6 +522,7 @@ int parse_txt_file(const char *filename, const char *csv)
                        sscanf(lineptr, "%d,%d,%d", &cur_sampletime, &type, 
&value);
 
                        has_depth = false;
+                       has_setpoint = false;
                        sample = prepare_sample(dc);
                        sample->time.seconds = cur_sampletime;
 
@@ -548,6 +549,8 @@ int parse_txt_file(const char *filename, const char *csv)
                                                add_sample_data(sample, 
POSEIDON_DILUENT, value);
                                                break;
                                        case 20:
+                                               has_setpoint = true;
+                                               prev_setpoint = value;
                                                add_sample_data(sample, 
POSEIDON_SETPOINT, value);
                                                break;
                                        case 39:
@@ -575,6 +578,8 @@ int parse_txt_file(const char *filename, const char *csv)
 
                        if (!has_depth)
                                add_sample_data(sample, POSEIDON_DEPTH, 
prev_depth);
+                       if (!has_setpoint)
+                               add_sample_data(sample, POSEIDON_SETPOINT, 
prev_setpoint);
                        finish_sample(dc);
 
                        if (!lineptr || !*lineptr)
-- 
1.9.1

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

Reply via email to