]> git.tdb.fi Git - ext/subsurface.git/blobdiff - parse-xml.c
Update test dives
[ext/subsurface.git] / parse-xml.c
index 6a08a3845c9551c3f35b818ff5c51b468537abda..5eabc353c17c47e4e68db5e0db2ded912f2b1437 100644 (file)
@@ -425,7 +425,7 @@ static void water_pressure(char *buffer, void *_depth)
                if (!val.fp)
                        break;
                /* cbar to atm */
-               atm = (val.fp / 100) / 1.01325;
+               atm = bar_to_atm(val.fp * 10);
                /*
                 * atm to cm. Why not mm? The precision just isn't
                 * there.
@@ -604,6 +604,8 @@ static void try_to_fill_sample(struct sample *sample, const char *name, char *bu
                return;
        if (MATCH(".sample.cylpress", pressure, &sample->cylinderpressure))
                return;
+       if (MATCH(".sample.cylinderindex", get_index, &sample->cylinderindex))
+               return;
        if (MATCH(".sample.depth", depth, &sample->depth))
                return;
        if (MATCH(".sample.temp", temperature, &sample->temperature))
@@ -781,8 +783,14 @@ static void uemis_ts(char *buffer, void *_when)
        struct tm tm;
        time_t *when = _when;
 
-       strptime(buffer, "%Y-%m-%dT%H:%M:%S", &tm);
+       memset(&tm, 0, sizeof(tm));
+       sscanf(buffer,"%d-%d-%dT%d:%d:%d",
+               &tm.tm_year, &tm.tm_mon, &tm.tm_mday,
+               &tm.tm_hour, &tm.tm_min, &tm.tm_sec);
+       tm.tm_mon  -= 1;
+       tm.tm_year -= 1900;
        *when = utc_mktime(&tm);
+
 }
 
 static void uemis_duration(char *buffer, void *_duration)
@@ -1114,9 +1122,9 @@ static void match_standard_cylinder(cylinder_type_t *type)
        if (type->description)
                return;
 
-       cuft = type->size.mliter / 28317.0;
+       cuft = ml_to_cuft(type->size.mliter);
        cuft *= to_ATM(type->workingpressure);
-       psi = type->workingpressure.mbar / 68.95;
+       psi = to_PSI(type->workingpressure);
 
        switch (psi) {
        case 2300 ... 2500:     /* 2400 psi: LP tank */
@@ -1169,7 +1177,8 @@ static void sanitize_cylinder_type(cylinder_type_t *type)
                return;
 
        if (input_units.volume == CUFT || import_source == SUUNTO) {
-               volume_of_air = type->size.mliter * 28.317;     /* milli-cu ft to milliliter */
+               /* confusing - we don't really start from ml but millicuft !*/
+               volume_of_air = cuft_to_l(type->size.mliter);
                atm = to_ATM(type->workingpressure);            /* working pressure in atm */
                volume = volume_of_air / atm;                   /* milliliters at 1 atm: "true size" */
                type->size.mliter = volume + 0.5;