From: Martin Ling Date: Thu, 7 Nov 2013 23:13:30 +0000 (+0000) Subject: Fix handling second channel on DS2000 series. X-Git-Tag: libsigrok-0.3.0~523 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=355de5a1101076d29c8d1c223c1b07b2bb6b06b3;p=libsigrok.git Fix handling second channel on DS2000 series. Patch from Mathias Grimmberger. --- 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. */