Undo some broken CCR features
Willem Ferguson
willemferguson at zoology.up.ac.za
Mon Nov 17 22:19:43 PST 2014
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 <willemferguson at zoology.up.ac.za>
>>
>> From 8a4121607a4259fc5a2651eb815a340fd81d5034 Mon Sep 17 00:00:00 2001
>> From: willem ferguson <willemferguson at 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 <willemferguson at 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
More information about the subsurface
mailing list