diff --git a/DSView/res/DSCope.bin b/DSView/res/DSCope.bin index d5d30015..0691a99f 100755 Binary files a/DSView/res/DSCope.bin and b/DSView/res/DSCope.bin differ diff --git a/DSView/res/DSCope20.bin b/DSView/res/DSCope20.bin index 98f2414e..f2cbcea8 100755 Binary files a/DSView/res/DSCope20.bin and b/DSView/res/DSCope20.bin differ diff --git a/DSView/res/DSLogic33.bin b/DSView/res/DSLogic33.bin index df21b86f..567d59db 100755 Binary files a/DSView/res/DSLogic33.bin and b/DSView/res/DSLogic33.bin differ diff --git a/DSView/res/DSLogic50.bin b/DSView/res/DSLogic50.bin index bd441607..e1e55242 100755 Binary files a/DSView/res/DSLogic50.bin and b/DSView/res/DSLogic50.bin differ diff --git a/libsigrok4DSL/hardware/DSL/dscope.c b/libsigrok4DSL/hardware/DSL/dscope.c index 3202de5b..b081ac3c 100644 --- a/libsigrok4DSL/hardware/DSL/dscope.c +++ b/libsigrok4DSL/hardware/DSL/dscope.c @@ -77,9 +77,6 @@ static const char *probe_names[] = { NULL, }; -static uint16_t test_sample_value; -static uint16_t test_init = 1; - static const uint64_t samplerates[] = { SR_KHZ(10), SR_KHZ(20), @@ -1529,8 +1526,6 @@ static int dev_acquisition_start(struct sr_dev_inst *sdi, void *cb_data) int ret; struct ctl_wr_cmd wr_cmd; - test_init = 1; - if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -1546,7 +1541,6 @@ static int dev_acquisition_start(struct sr_dev_inst *sdi, void *cb_data) devc->num_transfers = 0; devc->submitted_transfers = 0; devc->actual_samples = devc->limit_samples; - test_sample_value = 0; devc->abort = FALSE; devc->mstatus_valid = FALSE; devc->overflow = FALSE; @@ -1641,8 +1635,13 @@ static int dev_acquisition_stop(const struct sr_dev_inst *sdi, void *cb_data) static int dev_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end) { - int ret = dsl_dev_status_get(sdi, status, begin, end); - return ret; + struct DSL_context *devc = sdi->priv; + if (devc->instant || devc->status == DSL_DATA) { + int ret = dsl_dev_status_get(sdi, status, begin, end); + return ret; + } else { + return FALSE; + } } SR_PRIV struct sr_dev_driver DSCope_driver_info = { diff --git a/libsigrok4DSL/hardware/DSL/dsl.c b/libsigrok4DSL/hardware/DSL/dsl.c index 70e8cee7..5b9839a7 100755 --- a/libsigrok4DSL/hardware/DSL/dsl.c +++ b/libsigrok4DSL/hardware/DSL/dsl.c @@ -31,6 +31,7 @@ extern struct ds_trigger *trigger; static const unsigned int single_buffer_time = 20; static const unsigned int total_buffer_time = 100; static const unsigned int instant_buffer_size = 1024 * 1024; +static uint16_t test_init = 1; SR_PRIV int dsl_en_ch_num(const struct sr_dev_inst *sdi) { @@ -1417,6 +1418,7 @@ SR_PRIV int dsl_start_transfers(const struct sr_dev_inst *sdi) devc = sdi->priv; usb = sdi->conn; + test_init = 1; if (devc->instant) dso_buffer_size = instant_buffer_size * g_slist_length(sdi->channels); diff --git a/libsigrok4DSL/hardware/DSL/dslogic.c b/libsigrok4DSL/hardware/DSL/dslogic.c index 7d75df8a..63653892 100755 --- a/libsigrok4DSL/hardware/DSL/dslogic.c +++ b/libsigrok4DSL/hardware/DSL/dslogic.c @@ -169,9 +169,6 @@ static const char *probe_names[] = { NULL, }; -static uint16_t test_sample_value; -static uint16_t test_init = 1; - static const uint64_t samplerates[] = { SR_KHZ(10), SR_KHZ(20), @@ -1403,8 +1400,6 @@ static int dev_acquisition_start(struct sr_dev_inst *sdi, void *cb_data) int ret; struct ctl_wr_cmd wr_cmd; - test_init = 1; - if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -1422,7 +1417,6 @@ static int dev_acquisition_start(struct sr_dev_inst *sdi, void *cb_data) devc->submitted_transfers = 0; devc->actual_samples = devc->limit_samples; devc->actual_bytes = devc->actual_samples / DSLOGIC_ATOMIC_SAMPLES * dsl_en_ch_num(sdi) * DSLOGIC_ATOMIC_SIZE; - test_sample_value = 0; devc->abort = FALSE; devc->mstatus_valid = FALSE; devc->overflow = FALSE;