diff --git a/hardware/rigol-ds/api.c b/hardware/rigol-ds/api.c index cb9c2975..9db7870a 100644 --- a/hardware/rigol-ds/api.c +++ b/hardware/rigol-ds/api.c @@ -750,6 +750,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) devc->num_frame_bytes = 0; } else { if (devc->enabled_analog_probes) { + devc->channel_frame = devc->enabled_analog_probes->data; /* Assume there already was a trigger event - don't wait */ if (rigol_ds2xx2_acquisition_start(sdi, FALSE) != SR_OK) return SR_ERR; diff --git a/hardware/rigol-ds/protocol.c b/hardware/rigol-ds/protocol.c index 51cf25fa..e8bfb93f 100644 --- a/hardware/rigol-ds/protocol.c +++ b/hardware/rigol-ds/protocol.c @@ -169,8 +169,6 @@ SR_PRIV int rigol_ds2xx2_acquisition_start(const struct sr_dev_inst *sdi, if (!(devc = sdi->priv)) return SR_ERR; - devc->channel_frame = devc->enabled_analog_probes->data; - sr_dbg("Starting acquisition on channel %d", devc->channel_frame->index + 1); @@ -366,11 +364,11 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data) && devc->enabled_analog_probes->next != NULL) { /* We got the frame for the first analog channel, but * there's a second analog channel. */ + devc->channel_frame = devc->enabled_analog_probes->next->data; if (devc->model->series == 2) { /* Do not wait for trigger to try and keep channel data related. */ rigol_ds2xx2_acquisition_start(sdi, FALSE); } else { - devc->channel_frame = devc->enabled_analog_probes->next->data; rigol_ds_send(sdi, ":WAV:DATA? CHAN%c", devc->channel_frame->name[2]); } @@ -390,6 +388,7 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data) /* Get the next frame, starting with the first analog channel. */ if (devc->model->series == 2) { if (devc->enabled_analog_probes) { + devc->channel_frame = devc->enabled_analog_probes->data; /* Must wait for trigger because at * slow timebases the scope will * return old data otherwise. */