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.
This commit is contained in:
Jef Driesen 2018-10-16 09:10:52 +02:00
parent 070de23b83
commit a34e909a84
39 changed files with 65 additions and 57 deletions

View File

@ -63,7 +63,7 @@ closed.
The following sample types may be raised: The following sample types may be raised:
.Bl -tag -width Ds .Bl -tag -width Ds
.It Dv DC_SAMPLE_TIME .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 Set in the
.Fa time .Fa time
field. field.

View File

@ -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; sample_data_t *sampledata = (sample_data_t *) userdata;
unsigned int seconds = 0, milliseconds = 0;
switch (type) { switch (type) {
case DC_SAMPLE_TIME: case DC_SAMPLE_TIME:
seconds = value.time / 1000;
milliseconds = value.time % 1000;
if (sampledata->nsamples++) if (sampledata->nsamples++)
fprintf (sampledata->ostream, "</sample>\n"); fprintf (sampledata->ostream, "</sample>\n");
fprintf (sampledata->ostream, "<sample>\n"); fprintf (sampledata->ostream, "<sample>\n");
fprintf (sampledata->ostream, " <time>%02u:%02u</time>\n", value.time / 60, value.time % 60); if (milliseconds) {
fprintf (sampledata->ostream, " <time>%02u:%02u.%03u</time>\n", seconds / 60, seconds % 60, milliseconds);
} else {
fprintf (sampledata->ostream, " <time>%02u:%02u</time>\n", seconds / 60, seconds % 60);
}
break; break;
case DC_SAMPLE_DEPTH: case DC_SAMPLE_DEPTH:
fprintf (sampledata->ostream, " <depth>%.2f</depth>\n", fprintf (sampledata->ostream, " <depth>%.2f</depth>\n",

View File

@ -225,7 +225,7 @@ typedef struct dc_decomodel_t {
} dc_decomodel_t; } dc_decomodel_t;
typedef union dc_sample_value_t { typedef union dc_sample_value_t {
unsigned int time; unsigned int time; /* Milliseconds */
double depth; double depth;
struct { struct {
unsigned int tank; unsigned int tank;

View File

@ -276,7 +276,7 @@ atomics_cobalt_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/1000 bar). // Depth (1/1000 bar).

View File

@ -241,7 +241,7 @@ citizen_aqualand_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
// Time // Time
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth // Depth

View File

@ -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 temp = samples[0]; // Half degrees F
unsigned int depth = samples[1]; // Half feet 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); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
sample.depth = (depth / 2.0) * FEET; 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) { while (offset < size) {
const unsigned char *s = samples + offset; const unsigned char *s = samples + offset;
sample.time = time; sample.time = time * 1000;
if (last_sample_time != sample.time) { if (last_sample_time != sample.time) {
// We haven't issued this time yet. // We haven't issued this time yet.
last_sample_time = sample.time; 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; 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); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
sample.depth = start_depth * FEET; 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) { while (offset < size) {
const unsigned char *s = samples + offset; const unsigned char *s = samples + offset;
sample.time = time; sample.time = time * 1000;
if (last_sample_time != sample.time) { if (last_sample_time != sample.time) {
// We haven't issued this time yet. // We haven't issued this time yet.
last_sample_time = sample.time; last_sample_time = sample.time;

View File

@ -201,7 +201,7 @@ cressi_edy_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).

View File

@ -329,7 +329,7 @@ cressi_goa_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
if (complete) { if (complete) {
// Time (seconds). // Time (seconds).
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Temperature (1/10 °C). // Temperature (1/10 °C).

View File

@ -196,7 +196,7 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
// Time (seconds). // Time (seconds).
time += surftime; time += surftime;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).
@ -211,7 +211,7 @@ cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).

View File

@ -204,7 +204,7 @@ deepblu_cosmiq_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback
offset += SZ_SAMPLE; offset += SZ_SAMPLE;
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
sample.depth = (signed int) (depth - atmospheric) * (BAR / 1000.0) / parser->hydrostatic; sample.depth = (signed int) (depth - atmospheric) * (BAR / 1000.0) / parser->hydrostatic;

View File

@ -423,7 +423,7 @@ deepsix_excursion_parser_samples_foreach_v0 (dc_parser_t *abstract, dc_sample_ca
if (type == TEMPERATURE) { if (type == TEMPERATURE) {
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback(DC_SAMPLE_TIME, sample, userdata); if (callback) callback(DC_SAMPLE_TIME, sample, userdata);
sample.depth = pressure_to_depth(depth, atmospheric, DENSITY); 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 (seconds).
time += samplerate; time += samplerate;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
unsigned int depth = array_uint16_le (data + offset); unsigned int depth = array_uint16_le (data + offset);

View File

@ -264,7 +264,7 @@ diverite_nitekq_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Gas change // Gas change

View File

@ -924,7 +924,7 @@ divesoft_freedom_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
continue; continue;
} }
time = timestamp; time = timestamp;
sample.time = time; sample.time = time * 1000;
if (callback) callback(DC_SAMPLE_TIME, sample, userdata); if (callback) callback(DC_SAMPLE_TIME, sample, userdata);
} }

View File

@ -474,7 +474,7 @@ divesystem_idive_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
return DC_STATUS_DATAFORMAT; return DC_STATUS_DATAFORMAT;
} }
time = timestamp; time = timestamp;
sample.time = timestamp; sample.time = timestamp * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).

View File

@ -833,7 +833,7 @@ hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t call
// Time (seconds). // Time (seconds).
time += samplerate; time += samplerate;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Initial gas mix. // Initial gas mix.

View File

@ -545,7 +545,7 @@ liquivision_lynx_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/100 m). // Depth (1/100 m).

View File

@ -242,7 +242,7 @@ mares_darwin_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
// Surface Time (seconds). // Surface Time (seconds).
time += 20; time += 20;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).

View File

@ -1022,7 +1022,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
// Surface Time (seconds). // Surface Time (seconds).
time += surftime; time += surftime;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Surface Depth (0 m). // 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) { for (unsigned int i = 0; i < divetime; ++i) {
// Time (seconds). // Time (seconds).
time += parser->interval; time += parser->interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).
@ -1052,7 +1052,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
// Surface Time (seconds). // Surface Time (seconds).
time += surftime; time += surftime;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Surface Depth (0 m). // Surface Depth (0 m).
@ -1061,7 +1061,7 @@ mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
// Dive Time (seconds). // Dive Time (seconds).
time += divetime; time += divetime;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Maximum Depth (1/10 m). // 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 (seconds).
time += parser->interval; time += parser->interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).

View File

@ -382,7 +382,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
// Time (seconds). // Time (seconds).
time += 20; time += 20;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // 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). // Surface Time (seconds).
time += surftime; time += surftime;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Surface Depth (0 m). // Surface Depth (0 m).
@ -500,7 +500,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
time += interval; time += interval;
if (time > maxtime) if (time > maxtime)
time = maxtime; // Adjust the last sample. time = maxtime; // Adjust the last sample.
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).
@ -519,7 +519,7 @@ mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
} else { } else {
// Dive Time (seconds). // Dive Time (seconds).
time += divetime; time += divetime;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Maximum Depth (1/10 m). // Maximum Depth (1/10 m).

View File

@ -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]; const unsigned int setpoint = abstract->data[0x0013 + sp_index];
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback(DC_SAMPLE_TIME, sample, userdata); if (callback) callback(DC_SAMPLE_TIME, sample, userdata);
sample.depth = 0.1 * depth; sample.depth = 0.1 * depth;

View File

@ -758,7 +758,7 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_
for (unsigned int i = 0; i < nsamples; ++i) { for (unsigned int i = 0; i < nsamples; ++i) {
// Time // Time
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Vendor specific data // Vendor specific data
@ -802,7 +802,7 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_
} else { } else {
time += interval; time += interval;
} }
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Vendor specific data // Vendor specific data

View File

@ -230,7 +230,7 @@ oceanic_veo250_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback
// Time. // Time.
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Vendor specific data // Vendor specific data

View File

@ -331,7 +331,7 @@ oceanic_vtpro_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_
time = timestamp * 60 + (i + 1) * interval; time = timestamp * 60 + (i + 1) * interval;
else else
time = timestamp * 60 + (i + 1) * 60.0 / count + 0.5; 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); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Vendor specific data // Vendor specific data

View File

@ -249,7 +249,7 @@ oceans_s1_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca
unsigned int nsamples = seconds / interval; unsigned int nsamples = seconds / interval;
for (unsigned int i = 0; i < nsamples; ++i) { for (unsigned int i = 0; i < nsamples; ++i) {
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
sample.depth = 0; sample.depth = 0;
@ -257,7 +257,7 @@ oceans_s1_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca
} }
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
sample.depth = depth / 100.0; 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; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
sample.depth = depth / 100.0; sample.depth = depth / 100.0;

View File

@ -399,7 +399,7 @@ sample_statistics_cb (dc_sample_type_t type, dc_sample_value_t value, void *user
switch (type) { switch (type) {
case DC_SAMPLE_TIME: case DC_SAMPLE_TIME:
statistics->divetime = value.time; statistics->divetime = value.time / 1000;
break; break;
case DC_SAMPLE_DEPTH: case DC_SAMPLE_DEPTH:
if (statistics->maxdepth < value.depth) if (statistics->maxdepth < value.depth)

View File

@ -279,7 +279,7 @@ reefnet_sensus_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback
// Time (seconds) // Time (seconds)
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (adjusted feet of seawater). // Depth (adjusted feet of seawater).

View File

@ -278,7 +278,7 @@ reefnet_sensuspro_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callb
// Time (seconds) // Time (seconds)
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Temperature (°F) // Temperature (°F)

View File

@ -275,7 +275,7 @@ reefnet_sensusultra_parser_samples_foreach (dc_parser_t *abstract, dc_sample_cal
// Time (seconds) // Time (seconds)
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Temperature (0.01 °K) // Temperature (0.01 °K)

View File

@ -331,7 +331,7 @@ seac_screen_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
return DC_STATUS_DATAFORMAT; return DC_STATUS_DATAFORMAT;
} }
time = timestamp; time = timestamp;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/100 m). // Depth (1/100 m).

View File

@ -899,7 +899,7 @@ shearwater_predator_parser_samples_foreach (dc_parser_t *abstract, dc_sample_cal
if (type == LOG_RECORD_DIVE_SAMPLE) { if (type == LOG_RECORD_DIVE_SAMPLE) {
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m or ft). // 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 (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (absolute pressure in millibar) // Depth (absolute pressure in millibar)

View File

@ -184,7 +184,7 @@ sporasub_sp2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
// Time (seconds) // Time (seconds)
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/100 m) // Depth (1/100 m)

View File

@ -521,7 +521,7 @@ suunto_d9_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t ca
dc_sample_value_t sample = {0}; dc_sample_value_t sample = {0};
// Time (seconds). // Time (seconds).
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Sample data. // Sample data.

View File

@ -294,7 +294,7 @@ suunto_eon_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
if (complete) { if (complete) {
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
complete = 0; complete = 0;
} }
@ -341,7 +341,7 @@ suunto_eon_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t c
// Time // Time
if (complete) { if (complete) {
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
} }

View File

@ -474,7 +474,7 @@ static void sample_time(struct sample_data *info, unsigned short time_delta)
dc_sample_value_t sample = {0}; dc_sample_value_t sample = {0};
info->time += time_delta; 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); if (info->callback) info->callback(DC_SAMPLE_TIME, sample, info->userdata);
} }

View File

@ -183,7 +183,7 @@ suunto_solution_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
if (value < 0x7e || value > 0x82) { if (value < 0x7e || value > 0x82) {
// Time (minutes). // Time (minutes).
time += 3 * 60; time += 3 * 60;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (ft). // Depth (ft).

View File

@ -353,7 +353,7 @@ suunto_vyper_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
if (complete) { if (complete) {
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
complete = 0; complete = 0;
} }
@ -425,7 +425,7 @@ suunto_vyper_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t
// Time // Time
if (complete) { if (complete) {
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
} }

View File

@ -159,7 +159,7 @@ tecdiving_divecomputereu_parser_samples_foreach (dc_parser_t *abstract, dc_sampl
// Time (seconds). // Time (seconds).
time += interval; time += interval;
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (1/10 m). // Depth (1/10 m).

View File

@ -250,7 +250,7 @@ uwatec_memomouse_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
offset += 2; offset += 2;
// Time (seconds) // Time (seconds)
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
// Depth (meters) // Depth (meters)

View File

@ -1162,7 +1162,7 @@ uwatec_smart_parse (uwatec_smart_parser_t *parser, dc_sample_callback_t callback
} }
while (complete) { while (complete) {
sample.time = time; sample.time = time * 1000;
if (callback) callback (DC_SAMPLE_TIME, sample, userdata); if (callback) callback (DC_SAMPLE_TIME, sample, userdata);
if (parser->ngasmixes && gasmix != gasmix_previous) { if (parser->ngasmixes && gasmix != gasmix_previous) {