X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Frigol-ds%2Fprotocol.c;h=1344c8b420542398286f09b34f4c7345e15cd5ee;hb=ce97fc3f6a15b71575b9ef46d161b829d48d2e0a;hp=d21008b66b0586a8c8a6e6802ca98f0dc660f43d;hpb=bbcffe51d29343f7648e1e2f3b925dd571984bd3;p=libsigrok.git diff --git a/src/hardware/rigol-ds/protocol.c b/src/hardware/rigol-ds/protocol.c index d21008b6..1344c8b4 100644 --- a/src/hardware/rigol-ds/protocol.c +++ b/src/hardware/rigol-ds/protocol.c @@ -631,7 +631,7 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data) /* Still reading the header. */ return TRUE; if (len == -1) { - sr_err("Read error, aborting capture."); + sr_err("Error while reading block header, aborting capture."); packet.type = SR_DF_FRAME_END; sr_session_send(sdi, &packet); sr_dev_acquisition_stop(sdi); @@ -664,7 +664,7 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data) len = sr_scpi_read_data(scpi, (char *)devc->buffer, len); if (len == -1) { - sr_err("Read error, aborting capture."); + sr_err("Error while reading block data, aborting capture."); packet.type = SR_DF_FRAME_END; sr_session_send(sdi, &packet); sr_dev_acquisition_stop(sdi); @@ -723,7 +723,8 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data) if (devc->data_source != DATA_SOURCE_LIVE) rigol_ds_set_wait_event(devc, WAIT_BLOCK); } - if (!sr_scpi_read_complete(scpi)) { + /* End acquisition when data for all channels is acquired. */ + if (!sr_scpi_read_complete(scpi) && !devc->channel_entry->next) { sr_err("Read should have been completed"); packet.type = SR_DF_FRAME_END; sr_session_send(sdi, &packet);