On 17/11/2014 22:58, Dirk Hohndel wrote:
A few questions...

a - why are there two different commit messages?

On Mon, Nov 17, 2014 at 09:19:20PM +0200, Willem Ferguson wrote:
Undo some features that were broken in Robert's patch 0d7c192e:

1) Calculate correct partial pressure of oxygen to be plotted on
    dive profile, taking into account the oxygen sensor data.
    Currently, erroneously, OC PO2 values are shown, due to an
    erroneous calling parameter to fill_pressures().
2) Read start and end cylinder pressured correctly. In Robert's
    patch, some wrong assignments were done in file.c. This is
    now corrected and the correct cylinder pressures are shown in
    the equipment tab.
3) Write correct cylinder pressures to XML. Currently the data for
    the two cylinder are written to XML the wrong way round
   (diluent pressures = oxygen and vice versa).

Expand XML output:
1) Write oxygen sensor data to XML
2) Write no_of_02sensors to XML

Signed-off-by: willem ferguson <willemfergu...@zoology.up.ac.za>

 From 8a4121607a4259fc5a2651eb815a340fd81d5034 Mon Sep 17 00:00:00 2001
From: willem ferguson <willemfergu...@zoology.up.ac.za>
Date: Mon, 17 Nov 2014 21:04:36 +0200
Subject: [PATCH] Undo some features that were broken in Robert's patch
  0d7c192e:

1) Calculate correct partial pressure of oxygen to be plotted on
    dive profile, taking into account the oxygen sensor data.
    Currently, erroneously, OC PO2 values are shown, due to an
    erroneous calling parameter to fill_pressures().
2) Read start and end cylinder pressured correctly. In Robert's
    patch, some wrong assignments wer done in file.c. This is
    now corrected and the correct cylinder pressures are shown in
    the equipment tab.

Expand XML output:
1) Write oxygen sensor data to XML
2) Write no_of_02sensors to XML

Signed-off-by: willem ferguson <willemfergu...@zoology.up.ac.za>
The first one is what you wrote in the email, the second one is the commit
message that you gave when committing the patch. Why do you do that twice
instead of just sending the commit?

In future I will just send the commit.

diff --git a/file.c b/file.c
index 97095fd..4fe4d35 100644
--- a/file.c
+++ b/file.c
@@ -597,7 +597,7 @@ int parse_txt_file(const char *filename, const char *csv)
                                        case 13:
                                                add_sample_data(sample, 
POSEIDON_O2CYLINDER, value);
                                                if (!o2cylinder_pressure) {
-                                                       
dive->cylinder[1].sample_start.mbar = value * 1000;
+                                                       
dive->cylinder[0].sample_start.mbar = value * 1000;
                                                        o2cylinder_pressure = 
value;
                                                } else
                                                        o2cylinder_pressure = 
value;
BTW: I wanted to comment on this one before. This is SO UGLY.
if you have braces on one side of the else, have them on both sides.

This is not my code
diff --git a/profile.c b/profile.c
index 63023b5..8e43c21 100644
--- a/profile.c
+++ b/profile.c
@@ -905,7 +905,7 @@ static void calculate_gas_information_new(struct dive 
*dive, struct plot_info *p
amb_pressure = depth_to_mbar(entry->depth, dive) / 1000.0; - fill_pressures(&entry->pressures, amb_pressure, &dive->cylinder[cylinderindex].gasmix, entry->pressures.o2, dive->dc.dctype, entry->sac);
+               fill_pressures(&entry->pressures, amb_pressure, 
&dive->cylinder[cylinderindex].gasmix, entry->o2pressure, dive->dc.dctype, entry->sac);
                fn2 = (int) (1000.0 * entry->pressures.n2 / amb_pressure);
                fhe = (int) (1000.0 * entry->pressures.he / amb_pressure);
hmm, so what IS the difference between entry->pressures.o2 and
enry->o2pressure?
entry->o2pressure holds the consensus PO2 after considering the data from the different oxygen sensors. It is the variable that is used for plotting in the dive profile. entry->o2pressure is calculated before pressures.o2. The call above to fill_pressures() is the one that actually computes pressures.o2. I assume one should not use pressures.o2 as a parameter in a call to a function that calculates pressures.o2??

diff --git a/save-xml.c b/save-xml.c
index 52582db..cf7ccfe 100644
--- a/save-xml.c
+++ b/save-xml.c
@@ -254,6 +254,21 @@ static void save_sample(struct membuffer *b, struct sample 
*sample, struct sampl
                old->cns = sample->cns;
        }
+ if ((sample->o2sensor[0].mbar) && (sample->o2sensor[0].mbar != old->o2sensor[0].mbar)) {
+               put_milli(b, " sensor1='", sample->o2sensor[0].mbar, " bar'");
+               old->o2sensor[0] = sample->o2sensor[0];
+       }
+
+       if ((sample->o2sensor[1].mbar) && (sample->o2sensor[1].mbar != 
old->o2sensor[1].mbar)) {
+               put_milli(b, " sensor2='", sample->o2sensor[1].mbar, " bar'");
+               old->o2sensor[1] = sample->o2sensor[1];
+       }
+
+       if ((sample->o2sensor[2].mbar) && (sample->o2sensor[2].mbar != 
old->o2sensor[2].mbar)) {
+               put_milli(b, " sensor3='", sample->o2sensor[2].mbar, " bar'");
+               old->o2sensor[2] = sample->o2sensor[2];
+       }
+
        if (sample->setpoint.mbar != old->setpoint.mbar) {
                put_milli(b, " po2='", sample->setpoint.mbar, " bar'");
                old->setpoint = sample->setpoint;
So this stores the three sensors in XML - but they aren't stored in the
git backend?
The XML import/export is not perfect yet. The export removes the cylinder start and end values supplied by the DC because cylinder->sample_start and cylinder->sample_end are zeroed somewhere beforehand, so they are not written. The import also has some problems with cylinder pressures and figuring out start/end pressures. My suggestion is let's get the XML side working reliably, then it is a simple matter to transfer to the git back end. Does this make sense?

I am actively working at improving the XML import/export.

@@ -355,6 +370,8 @@ static void save_dc(struct membuffer *b, struct dive *dive, 
struct divecomputer
                for (enum dive_comp_type i = 0; i < NUM_DC_TYPE; i++)
                        if (dc->dctype == i)
                                show_utf8(b, dctype_text[i], " dctype='", "'", 
1);
+               if (dc->no_o2sensors)
+                       put_format(b," no_o2sensors='%d'", dc->no_o2sensors);
        }
        put_format(b, ">\n");
        save_depths(b, dc);
Ditto.


/D
So I assume this patch is not acceptable? Would you like me to re-draft the patch in line with you comments?
Kind regards,
willem

_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to