]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/agilent-dmm/sched.c
agilent-dmm: Convert to SR_DF_ANALOG.
[libsigrok.git] / src / hardware / agilent-dmm / sched.c
index 07dbbade1299ae5a4e2d28c196b2b177e9cebf30..0dd1c71d9d7a7607e704ad6ef15b0a75294e50f9 100644 (file)
@@ -121,7 +121,7 @@ SR_PRIV int agdmm_receive_data(int fd, int revents, void *cb_data)
 
        dispatch(sdi);
 
-       if (devc->limit_samples && devc->num_samples >= devc->limit_samples)
+       if (sr_sw_limits_check(&devc->limits))
                sdi->driver->dev_acquisition_stop(sdi);
 
        return TRUE;
@@ -264,7 +264,10 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match)
 {
        struct dev_context *devc;
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_analog_old analog;
+       struct sr_datafeed_analog analog;
+       struct sr_analog_encoding encoding;
+       struct sr_analog_meaning meaning;
+       struct sr_analog_spec spec;
        float fvalue;
        const char *s;
        char *mstr;
@@ -296,18 +299,18 @@ static int recv_fetc(const struct sr_dev_inst *sdi, GMatchInfo *match)
                        fvalue /= devc->cur_divider;
        }
 
-       memset(&analog, 0, sizeof(struct sr_datafeed_analog_old));
-       analog.mq = devc->cur_mq;
-       analog.unit = devc->cur_unit;
-       analog.mqflags = devc->cur_mqflags;
-       analog.channels = sdi->channels;
+       sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+       analog.meaning->mq = devc->cur_mq;
+       analog.meaning->unit = devc->cur_unit;
+       analog.meaning->mqflags = devc->cur_mqflags;
+       analog.meaning->channels = sdi->channels;
        analog.num_samples = 1;
        analog.data = &fvalue;
-       packet.type = SR_DF_ANALOG_OLD;
+       packet.type = SR_DF_ANALOG;
        packet.payload = &analog;
        sr_session_send(sdi, &packet);
 
-       devc->num_samples++;
+       sr_sw_limits_update_samples_read(&devc->limits, 1);
 
        return SR_OK;
 }