diff --git a/src/mares_common.c b/src/mares_common.c index 4091db1..116f426 100644 --- a/src/mares_common.c +++ b/src/mares_common.c @@ -149,6 +149,7 @@ mares_common_transfer (mares_common_device_t *device, const unsigned char comman return rc; // Discard any garbage bytes. + serial_sleep (device->port, 100); serial_flush (device->port, SERIAL_QUEUE_INPUT); } diff --git a/src/mares_iconhd.c b/src/mares_iconhd.c index e047cd3..e833d20 100644 --- a/src/mares_iconhd.c +++ b/src/mares_iconhd.c @@ -413,7 +413,7 @@ mares_iconhd_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, dc_event_devinfo_t devinfo; devinfo.model = mares_iconhd_get_model (device, data[0]); devinfo.firmware = 0; - devinfo.serial = array_uint16_le (data + 12); + devinfo.serial = array_uint32_le (data + 0x0C); device_event_emit (abstract, DC_EVENT_DEVINFO, &devinfo); rc = mares_iconhd_extract_dives (abstract, dc_buffer_get_data (buffer), diff --git a/src/oceanic_atom2_parser.c b/src/oceanic_atom2_parser.c index 78dc981..01225e7 100644 --- a/src/oceanic_atom2_parser.c +++ b/src/oceanic_atom2_parser.c @@ -543,7 +543,10 @@ oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_ if (have_pressure) { if (parser->model == OC1A || parser->model == OC1B) pressure = (data[offset + 10] + (data[offset + 11] << 8)) & 0x0FFF; - else if (parser->model == ZENAIR || parser->model == VT4 || parser->model == VT41|| parser->model == ATOM3 || parser->model == ATOM31 || parser->model == A300AI) + else if (parser->model == VT4 || parser->model == VT41|| + parser->model == ATOM3 || parser->model == ATOM31 || + parser->model == ZENAIR ||parser->model == A300AI || + parser->model == DG03) pressure = (((data[offset + 0] & 0x03) << 8) + data[offset + 1]) * 5; else pressure -= data[offset + 1]; diff --git a/src/oceanic_vtpro_parser.c b/src/oceanic_vtpro_parser.c index 4eac78f..08a4b90 100644 --- a/src/oceanic_vtpro_parser.c +++ b/src/oceanic_vtpro_parser.c @@ -186,7 +186,7 @@ oceanic_vtpro_parser_get_field (dc_parser_t *abstract, dc_field_type_t type, uns *((unsigned int *) value) = parser->divetime; break; case DC_FIELD_MAXDEPTH: - *((double *) value) = (data[footer + 0] + ((data[footer + 1] & 0x0F) << 8)) * 1; + *((double *) value) = (data[footer + 0] + ((data[footer + 1] & 0x0F) << 8)) * FEET; break; case DC_FIELD_GASMIX_COUNT: *((unsigned int *) value) = 1;