diff --git a/src/mclean_extreme.c b/src/mclean_extreme.c index 5785a24..5c8060c 100644 --- a/src/mclean_extreme.c +++ b/src/mclean_extreme.c @@ -420,6 +420,10 @@ mclean_extreme_device_open(dc_device_t **out, dc_context_t *context, dc_iostream goto error_free; } + // Make sure everything is in a sane state. + dc_iostream_sleep (device->iostream, 100); + dc_iostream_purge (device->iostream, DC_DIRECTION_ALL); + *out = (dc_device_t *)device; return DC_STATUS_SUCCESS; diff --git a/src/tecdiving_divecomputereu.c b/src/tecdiving_divecomputereu.c index cf88b30..93190e2 100644 --- a/src/tecdiving_divecomputereu.c +++ b/src/tecdiving_divecomputereu.c @@ -376,6 +376,10 @@ tecdiving_divecomputereu_device_open (dc_device_t **out, dc_context_t *context, goto error_free; } + // Make sure everything is in a sane state. + dc_iostream_sleep (device->iostream, 100); + dc_iostream_purge (device->iostream, DC_DIRECTION_ALL); + // Send the init command. status = tecdiving_divecomputereu_send (device, CMD_INIT, NULL, 0); if (status != DC_STATUS_SUCCESS) {