From a34e909a84dce0c36d5fa149ebb6757d792303c6 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Tue, 16 Oct 2018 09:10:52 +0200 Subject: [PATCH] Change the units for the sample time to milliseconds Some dive computers, especially freediving computers, supports multiple samples per second. Since our smallest unit of time is one second, we can't represent this, and the extra samples are dropped. Therefore, the units are changed to milliseconds to prepare supporting this extra resolution. --- doc/man/dc_parser_samples_foreach.3 | 2 +- examples/output_xml.c | 10 +++++++++- include/libdivecomputer/parser.h | 2 +- src/atomics_cobalt_parser.c | 2 +- src/citizen_aqualand_parser.c | 2 +- src/cochran_commander_parser.c | 8 ++++---- src/cressi_edy_parser.c | 2 +- src/cressi_goa_parser.c | 2 +- src/cressi_leonardo_parser.c | 4 ++-- src/deepblu_cosmiq_parser.c | 2 +- src/deepsix_excursion_parser.c | 4 ++-- src/diverite_nitekq_parser.c | 2 +- src/divesoft_freedom_parser.c | 2 +- src/divesystem_idive_parser.c | 2 +- src/hw_ostc_parser.c | 2 +- src/liquivision_lynx_parser.c | 2 +- src/mares_darwin_parser.c | 2 +- src/mares_iconhd_parser.c | 10 +++++----- src/mares_nemo_parser.c | 8 ++++---- src/mclean_extreme_parser.c | 2 +- src/oceanic_atom2_parser.c | 4 ++-- src/oceanic_veo250_parser.c | 2 +- src/oceanic_vtpro_parser.c | 2 +- src/oceans_s1_parser.c | 6 +++--- src/parser.c | 2 +- src/reefnet_sensus_parser.c | 2 +- src/reefnet_sensuspro_parser.c | 2 +- src/reefnet_sensusultra_parser.c | 2 +- src/seac_screen_parser.c | 2 +- src/shearwater_predator_parser.c | 4 ++-- src/sporasub_sp2_parser.c | 2 +- src/suunto_d9_parser.c | 2 +- src/suunto_eon_parser.c | 4 ++-- src/suunto_eonsteel_parser.c | 2 +- src/suunto_solution_parser.c | 2 +- src/suunto_vyper_parser.c | 4 ++-- src/tecdiving_divecomputereu_parser.c | 2 +- src/uwatec_memomouse_parser.c | 2 +- src/uwatec_smart_parser.c | 2 +- 39 files changed, 65 insertions(+), 57 deletions(-) diff --git a/doc/man/dc_parser_samples_foreach.3 b/doc/man/dc_parser_samples_foreach.3 index 5ac5554..1b8be82 100644 --- a/doc/man/dc_parser_samples_foreach.3 +++ b/doc/man/dc_parser_samples_foreach.3 @@ -63,7 +63,7 @@ closed. The following sample types may be raised: .Bl -tag -width Ds .It Dv DC_SAMPLE_TIME -The time of the sample taken in seconds after the dive began. +The time of the sample taken in milliseconds after the dive began. Set in the .Fa time field. diff --git a/examples/output_xml.c b/examples/output_xml.c index 7d76cb1..882680a 100644 --- a/examples/output_xml.c +++ b/examples/output_xml.c @@ -104,12 +104,20 @@ sample_cb (dc_sample_type_t type, dc_sample_value_t value, void *userdata) sample_data_t *sampledata = (sample_data_t *) userdata; + unsigned int seconds = 0, milliseconds = 0; + switch (type) { case DC_SAMPLE_TIME: + seconds = value.time / 1000; + milliseconds = value.time % 1000; if (sampledata->nsamples++) fprintf (sampledata->ostream, "\n"); fprintf (sampledata->ostream, "\n"); - fprintf (sampledata->ostream, " \n", value.time / 60, value.time % 60); + if (milliseconds) { + fprintf (sampledata->ostream, " \n", seconds / 60, seconds % 60, milliseconds); + } else { + fprintf (sampledata->ostream, " \n", seconds / 60, seconds % 60); + } break; case DC_SAMPLE_DEPTH: fprintf (sampledata->ostream, " %.2f\n", diff --git a/include/libdivecomputer/parser.h b/include/libdivecomputer/parser.h index 6c49d0b..de1bbc1 100644 --- a/include/libdivecomputer/parser.h +++ b/include/libdivecomputer/parser.h @@ -225,7 +225,7 @@ typedef struct dc_decomodel_t { } dc_decomodel_t; typedef union dc_sample_value_t { - unsigned int time; + unsigned int time; /* Milliseconds */ double depth; struct { unsigned int tank; diff --git a/src/atomics_cobalt_parser.c b/src/atomics_cobalt_parser.c index 905b730..194296e 100644 --- a/src/atomics_cobalt_parser.c +++ b/src/atomics_cobalt_parser.c @@ -276,7 +276,7 @@ atomics_cobalt_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/1000 bar). diff --git a/src/citizen_aqualand_parser.c b/src/citizen_aqualand_parser.c index 5b95555..41a8edc 100644 --- a/src/citizen_aqualand_parser.c +++ b/src/citizen_aqualand_parser.c @@ -241,7 +241,7 @@ citizen_aqualand_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba // Time time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth diff --git a/src/cochran_commander_parser.c b/src/cochran_commander_parser.c index a4515ea..271dc62 100644 --- a/src/cochran_commander_parser.c +++ b/src/cochran_commander_parser.c @@ -578,7 +578,7 @@ cochran_commander_parser_samples_foreach_tm (dc_parser_t *abstract, dc_sample_ca unsigned int temp = samples[0]; // Half degrees F unsigned int depth = samples[1]; // Half feet - last_sample_time = sample.time = time; + last_sample_time = sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); sample.depth = (depth / 2.0) * FEET; @@ -593,7 +593,7 @@ cochran_commander_parser_samples_foreach_tm (dc_parser_t *abstract, dc_sample_ca while (offset < size) { const unsigned char *s = samples + offset; - sample.time = time; + sample.time = time * 1000; if (last_sample_time != sample.time) { // We haven't issued this time yet. last_sample_time = sample.time; @@ -714,7 +714,7 @@ cochran_commander_parser_samples_foreach_emc (dc_parser_t *abstract, dc_sample_c start_depth = array_uint16_le (data + layout->start_depth) / 256.0; } - last_sample_time = sample.time = time; + last_sample_time = sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); sample.depth = start_depth * FEET; @@ -730,7 +730,7 @@ cochran_commander_parser_samples_foreach_emc (dc_parser_t *abstract, dc_sample_c while (offset < size) { const unsigned char *s = samples + offset; - sample.time = time; + sample.time = time * 1000; if (last_sample_time != sample.time) { // We haven't issued this time yet. last_sample_time = sample.time; diff --git a/src/cressi_edy_parser.c b/src/cressi_edy_parser.c index 3817fc7..4dd3a18 100644 --- a/src/cressi_edy_parser.c +++ b/src/cressi_edy_parser.c @@ -201,7 +201,7 @@ cressi_edy_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). diff --git a/src/cressi_goa_parser.c b/src/cressi_goa_parser.c index f5d4a4c..80055fc 100644 --- a/src/cressi_goa_parser.c +++ b/src/cressi_goa_parser.c @@ -329,7 +329,7 @@ cressi_goa_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c if (complete) { // Time (seconds). - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Temperature (1/10 °C). diff --git a/src/cressi_leonardo_parser.c b/src/cressi_leonardo_parser.c index eefebdf..55624b1 100644 --- a/src/cressi_leonardo_parser.c +++ b/src/cressi_leonardo_parser.c @@ -196,7 +196,7 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac // Time (seconds). time += surftime; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). @@ -211,7 +211,7 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). diff --git a/src/deepblu_cosmiq_parser.c b/src/deepblu_cosmiq_parser.c index 508bc5d..a6efafd 100644 --- a/src/deepblu_cosmiq_parser.c +++ b/src/deepblu_cosmiq_parser.c @@ -204,7 +204,7 @@ deepblu_cosmiq_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback offset += SZ_SAMPLE; time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); sample.depth = (signed int) (depth - atmospheric) * (BAR / 1000.0) / parser->hydrostatic; diff --git a/src/deepsix_excursion_parser.c b/src/deepsix_excursion_parser.c index 2fc8c2c..f6eb05f 100644 --- a/src/deepsix_excursion_parser.c +++ b/src/deepsix_excursion_parser.c @@ -423,7 +423,7 @@ deepsix_excursion_parser_samples_foreach_v0 (dc_parser_t *abstract, dc_sample_ca if (type == TEMPERATURE) { time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback(DC_SAMPLE_TIME, sample, userdata); sample.depth = pressure_to_depth(depth, atmospheric, DENSITY); @@ -591,7 +591,7 @@ deepsix_excursion_parser_samples_foreach_v1 (dc_parser_t *abstract, dc_sample_ca // Time (seconds). time += samplerate; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); unsigned int depth = array_uint16_le (data + offset); diff --git a/src/diverite_nitekq_parser.c b/src/diverite_nitekq_parser.c index 5623769..dec8204 100644 --- a/src/diverite_nitekq_parser.c +++ b/src/diverite_nitekq_parser.c @@ -264,7 +264,7 @@ diverite_nitekq_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Gas change diff --git a/src/divesoft_freedom_parser.c b/src/divesoft_freedom_parser.c index b595e63..6280dbf 100644 --- a/src/divesoft_freedom_parser.c +++ b/src/divesoft_freedom_parser.c @@ -924,7 +924,7 @@ divesoft_freedom_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba continue; } time = timestamp; - sample.time = time; + sample.time = time * 1000; if (callback) callback(DC_SAMPLE_TIME, sample, userdata); } diff --git a/src/divesystem_idive_parser.c b/src/divesystem_idive_parser.c index 3270c55..b9dfb08 100644 --- a/src/divesystem_idive_parser.c +++ b/src/divesystem_idive_parser.c @@ -474,7 +474,7 @@ divesystem_idive_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba return DC_STATUS_DATAFORMAT; } time = timestamp; - sample.time = timestamp; + sample.time = timestamp * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). diff --git a/src/hw_ostc_parser.c b/src/hw_ostc_parser.c index 2d93fcd..de354df 100644 --- a/src/hw_ostc_parser.c +++ b/src/hw_ostc_parser.c @@ -833,7 +833,7 @@ hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t call // Time (seconds). time += samplerate; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Initial gas mix. diff --git a/src/liquivision_lynx_parser.c b/src/liquivision_lynx_parser.c index 764d20e..9958327 100644 --- a/src/liquivision_lynx_parser.c +++ b/src/liquivision_lynx_parser.c @@ -545,7 +545,7 @@ liquivision_lynx_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/100 m). diff --git a/src/mares_darwin_parser.c b/src/mares_darwin_parser.c index 88e831c..6a87e46 100644 --- a/src/mares_darwin_parser.c +++ b/src/mares_darwin_parser.c @@ -242,7 +242,7 @@ mares_darwin_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Surface Time (seconds). time += 20; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). diff --git a/src/mares_iconhd_parser.c b/src/mares_iconhd_parser.c index 600eaa9..9ac6dd6 100644 --- a/src/mares_iconhd_parser.c +++ b/src/mares_iconhd_parser.c @@ -1022,7 +1022,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Surface Time (seconds). time += surftime; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Surface Depth (0 m). @@ -1035,7 +1035,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t for (unsigned int i = 0; i < divetime; ++i) { // Time (seconds). time += parser->interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). @@ -1052,7 +1052,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Surface Time (seconds). time += surftime; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Surface Depth (0 m). @@ -1061,7 +1061,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Dive Time (seconds). time += divetime; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Maximum Depth (1/10 m). @@ -1123,7 +1123,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Time (seconds). time += parser->interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). diff --git a/src/mares_nemo_parser.c b/src/mares_nemo_parser.c index 2f26605..9e906ac 100644 --- a/src/mares_nemo_parser.c +++ b/src/mares_nemo_parser.c @@ -382,7 +382,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c // Time (seconds). time += 20; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). @@ -459,7 +459,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c // Surface Time (seconds). time += surftime; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Surface Depth (0 m). @@ -500,7 +500,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c time += interval; if (time > maxtime) time = maxtime; // Adjust the last sample. - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). @@ -519,7 +519,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c } else { // Dive Time (seconds). time += divetime; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Maximum Depth (1/10 m). diff --git a/src/mclean_extreme_parser.c b/src/mclean_extreme_parser.c index 694bf60..260c56b 100644 --- a/src/mclean_extreme_parser.c +++ b/src/mclean_extreme_parser.c @@ -269,7 +269,7 @@ mclean_extreme_parser_samples_foreach(dc_parser_t *abstract, dc_sample_callback_ const unsigned int setpoint = abstract->data[0x0013 + sp_index]; time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback(DC_SAMPLE_TIME, sample, userdata); sample.depth = 0.1 * depth; diff --git a/src/oceanic_atom2_parser.c b/src/oceanic_atom2_parser.c index f6b1f71..ed4edd4 100644 --- a/src/oceanic_atom2_parser.c +++ b/src/oceanic_atom2_parser.c @@ -758,7 +758,7 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ for (unsigned int i = 0; i < nsamples; ++i) { // Time time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Vendor specific data @@ -802,7 +802,7 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ } else { time += interval; } - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Vendor specific data diff --git a/src/oceanic_veo250_parser.c b/src/oceanic_veo250_parser.c index 90d3383..2eead46 100644 --- a/src/oceanic_veo250_parser.c +++ b/src/oceanic_veo250_parser.c @@ -230,7 +230,7 @@ oceanic_veo250_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback // Time. time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Vendor specific data diff --git a/src/oceanic_vtpro_parser.c b/src/oceanic_vtpro_parser.c index 9650c49..75b3fc5 100644 --- a/src/oceanic_vtpro_parser.c +++ b/src/oceanic_vtpro_parser.c @@ -331,7 +331,7 @@ oceanic_vtpro_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ time = timestamp * 60 + (i + 1) * interval; else time = timestamp * 60 + (i + 1) * 60.0 / count + 0.5; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Vendor specific data diff --git a/src/oceans_s1_parser.c b/src/oceans_s1_parser.c index 8b4cfbd..63c123f 100644 --- a/src/oceans_s1_parser.c +++ b/src/oceans_s1_parser.c @@ -249,7 +249,7 @@ oceans_s1_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca unsigned int nsamples = seconds / interval; for (unsigned int i = 0; i < nsamples; ++i) { time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); sample.depth = 0; @@ -257,7 +257,7 @@ oceans_s1_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca } time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); sample.depth = depth / 100.0; @@ -280,7 +280,7 @@ oceans_s1_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca } time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); sample.depth = depth / 100.0; diff --git a/src/parser.c b/src/parser.c index 63485d2..77dcb84 100644 --- a/src/parser.c +++ b/src/parser.c @@ -399,7 +399,7 @@ sample_statistics_cb (dc_sample_type_t type, dc_sample_value_t value, void *user switch (type) { case DC_SAMPLE_TIME: - statistics->divetime = value.time; + statistics->divetime = value.time / 1000; break; case DC_SAMPLE_DEPTH: if (statistics->maxdepth < value.depth) diff --git a/src/reefnet_sensus_parser.c b/src/reefnet_sensus_parser.c index 00c3b47..2797651 100644 --- a/src/reefnet_sensus_parser.c +++ b/src/reefnet_sensus_parser.c @@ -279,7 +279,7 @@ reefnet_sensus_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback // Time (seconds) time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (adjusted feet of seawater). diff --git a/src/reefnet_sensuspro_parser.c b/src/reefnet_sensuspro_parser.c index ad371d7..422a161 100644 --- a/src/reefnet_sensuspro_parser.c +++ b/src/reefnet_sensuspro_parser.c @@ -278,7 +278,7 @@ reefnet_sensuspro_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callb // Time (seconds) time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Temperature (°F) diff --git a/src/reefnet_sensusultra_parser.c b/src/reefnet_sensusultra_parser.c index bc52f1f..90ead6f 100644 --- a/src/reefnet_sensusultra_parser.c +++ b/src/reefnet_sensusultra_parser.c @@ -275,7 +275,7 @@ reefnet_sensusultra_parser_samples_foreach (dc_parser_t *abstract, dc_sample_cal // Time (seconds) time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Temperature (0.01 °K) diff --git a/src/seac_screen_parser.c b/src/seac_screen_parser.c index c4a855c..dc2e781 100644 --- a/src/seac_screen_parser.c +++ b/src/seac_screen_parser.c @@ -331,7 +331,7 @@ seac_screen_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t return DC_STATUS_DATAFORMAT; } time = timestamp; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/100 m). diff --git a/src/shearwater_predator_parser.c b/src/shearwater_predator_parser.c index 06a0882..cd98e76 100644 --- a/src/shearwater_predator_parser.c +++ b/src/shearwater_predator_parser.c @@ -899,7 +899,7 @@ shearwater_predator_parser_samples_foreach (dc_parser_t *abstract, dc_sample_cal if (type == LOG_RECORD_DIVE_SAMPLE) { // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m or ft). @@ -1076,7 +1076,7 @@ shearwater_predator_parser_samples_foreach (dc_parser_t *abstract, dc_sample_cal // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (absolute pressure in millibar) diff --git a/src/sporasub_sp2_parser.c b/src/sporasub_sp2_parser.c index 5ac44b8..6c308d4 100644 --- a/src/sporasub_sp2_parser.c +++ b/src/sporasub_sp2_parser.c @@ -184,7 +184,7 @@ sporasub_sp2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Time (seconds) time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/100 m) diff --git a/src/suunto_d9_parser.c b/src/suunto_d9_parser.c index 0abb079..4de49c1 100644 --- a/src/suunto_d9_parser.c +++ b/src/suunto_d9_parser.c @@ -521,7 +521,7 @@ suunto_d9_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca dc_sample_value_t sample = {0}; // Time (seconds). - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Sample data. diff --git a/src/suunto_eon_parser.c b/src/suunto_eon_parser.c index 8e80aca..8a048b2 100644 --- a/src/suunto_eon_parser.c +++ b/src/suunto_eon_parser.c @@ -294,7 +294,7 @@ suunto_eon_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c if (complete) { // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); complete = 0; } @@ -341,7 +341,7 @@ suunto_eon_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c // Time if (complete) { time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); } diff --git a/src/suunto_eonsteel_parser.c b/src/suunto_eonsteel_parser.c index 907eca7..31f67b9 100644 --- a/src/suunto_eonsteel_parser.c +++ b/src/suunto_eonsteel_parser.c @@ -474,7 +474,7 @@ static void sample_time(struct sample_data *info, unsigned short time_delta) dc_sample_value_t sample = {0}; info->time += time_delta; - sample.time = info->time / 1000; + sample.time = info->time / 1000 * 1000; if (info->callback) info->callback(DC_SAMPLE_TIME, sample, info->userdata); } diff --git a/src/suunto_solution_parser.c b/src/suunto_solution_parser.c index 59648d5..1713a73 100644 --- a/src/suunto_solution_parser.c +++ b/src/suunto_solution_parser.c @@ -183,7 +183,7 @@ suunto_solution_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac if (value < 0x7e || value > 0x82) { // Time (minutes). time += 3 * 60; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (ft). diff --git a/src/suunto_vyper_parser.c b/src/suunto_vyper_parser.c index 4970b86..356f64c 100644 --- a/src/suunto_vyper_parser.c +++ b/src/suunto_vyper_parser.c @@ -353,7 +353,7 @@ suunto_vyper_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t if (complete) { // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); complete = 0; } @@ -425,7 +425,7 @@ suunto_vyper_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t // Time if (complete) { time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); } diff --git a/src/tecdiving_divecomputereu_parser.c b/src/tecdiving_divecomputereu_parser.c index d060996..bf134eb 100644 --- a/src/tecdiving_divecomputereu_parser.c +++ b/src/tecdiving_divecomputereu_parser.c @@ -159,7 +159,7 @@ tecdiving_divecomputereu_parser_samples_foreach (dc_parser_t *abstract, dc_sampl // Time (seconds). time += interval; - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (1/10 m). diff --git a/src/uwatec_memomouse_parser.c b/src/uwatec_memomouse_parser.c index 3c818fa..2c3d506 100644 --- a/src/uwatec_memomouse_parser.c +++ b/src/uwatec_memomouse_parser.c @@ -250,7 +250,7 @@ uwatec_memomouse_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba offset += 2; // Time (seconds) - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); // Depth (meters) diff --git a/src/uwatec_smart_parser.c b/src/uwatec_smart_parser.c index bd849a8..83304a5 100644 --- a/src/uwatec_smart_parser.c +++ b/src/uwatec_smart_parser.c @@ -1162,7 +1162,7 @@ uwatec_smart_parse (uwatec_smart_parser_t *parser, dc_sample_callback_t callback } while (complete) { - sample.time = time; + sample.time = time * 1000; if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (parser->ngasmixes && gasmix != gasmix_previous) {