From: Valentin Ochs Date: Thu, 11 Jun 2020 14:12:25 +0000 (+0200) Subject: rigol-ds: Fix reading data from internal memory X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=704910e32ca97421e59009f1e384b9fc94a5a75b;p=libsigrok.git rigol-ds: Fix reading data from internal memory According to the programming manual, one should issue :WAV:RES :WAV:BEG before reading data from internal memory. Without this, the wrong data will be returned. --- diff --git a/src/hardware/rigol-ds/protocol.c b/src/hardware/rigol-ds/protocol.c index 6d8abc1e..02a484f3 100644 --- a/src/hardware/rigol-ds/protocol.c +++ b/src/hardware/rigol-ds/protocol.c @@ -493,6 +493,11 @@ SR_PRIV int rigol_ds_channel_start(const struct sr_dev_inst *sdi) devc->data_source == DATA_SOURCE_LIVE ? ":WAV:MODE NORM" :":WAV:MODE RAW") != SR_OK) return SR_ERR; + + if (devc->data_source != DATA_SOURCE_LIVE) { + if (rigol_ds_config_set(sdi, ":WAV:RES") != SR_OK) + return SR_ERR; + } break; } @@ -651,9 +656,12 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data) return TRUE; } - if (devc->model->series->protocol >= PROTOCOL_V3) + if (devc->model->series->protocol >= PROTOCOL_V3) { + if (rigol_ds_config_set(sdi, ":WAV:BEG") != SR_OK) + return TRUE; if (sr_scpi_send(sdi->conn, ":WAV:DATA?") != SR_OK) return TRUE; + } if (sr_scpi_read_begin(scpi) != SR_OK) return TRUE;