X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Frigol-ds1xx2%2Fprotocol.c;h=6879a04c12a90e8c50bb7f81349baf1237ea1606;hb=361d15110ce355dd69099d95ac8c9716e45b3173;hp=d8b0de720e4071abb1c8fbd4fe14ef61bc5b0ce9;hpb=e0b7d23ce884f03ecb693943c5bd822879c68d65;p=libsigrok.git diff --git a/hardware/rigol-ds1xx2/protocol.c b/hardware/rigol-ds1xx2/protocol.c index d8b0de72..6879a04c 100644 --- a/hardware/rigol-ds1xx2/protocol.c +++ b/hardware/rigol-ds1xx2/protocol.c @@ -44,11 +44,12 @@ SR_PRIV int rigol_ds1xx2_receive_data(int fd, int revents, void *cb_data) if (revents == G_IO_IN) { len = read(fd, buf, WAVEFORM_SIZE); - sr_dbg("received %d", len); + sr_dbg("Received %d bytes.", len); if (len == -1) return TRUE; for (i = 0; i < len; i++) data[i] = devc->scale / 25.6 * (128 - buf[i]) - devc->offset; + analog.probes = devc->enabled_probes; analog.num_samples = len; analog.data = data; analog.mq = SR_MQ_VOLTAGE; @@ -57,6 +58,7 @@ SR_PRIV int rigol_ds1xx2_receive_data(int fd, int revents, void *cb_data) packet.type = SR_DF_ANALOG; packet.payload = &analog; sr_session_send(cb_data, &packet); + if (++devc->num_frames == devc->limit_frames) sdi->driver->dev_acquisition_stop(sdi, cb_data); else @@ -70,10 +72,13 @@ SR_PRIV int rigol_ds1xx2_send_data(int fd, const char *format, ...) { va_list args; char buf[256]; + int len; + va_start(args, format); - int len = vsprintf(buf, format, args); + len = vsprintf(buf, format, args); va_end(args); len = write(fd, buf, len); - sr_dbg("sent %s", buf); + sr_dbg("Sent '%s'.", buf); + return len; }