]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/norma-dmm/protocol.c
maynuo-m97: Use software limit helpers
[libsigrok.git] / src / hardware / norma-dmm / protocol.c
index ea9cdb434acc82ea81f653aaa3f676e7624f1b46..60bae0b3460078f258a43a61de0b138630bb3c03 100644 (file)
@@ -30,7 +30,7 @@
 SR_PRIV const struct nmadmm_req nmadmm_requests[] = {
        { NMADMM_REQ_IDN, "IDN?" },
        { NMADMM_REQ_IDN, "STATUS?" },
-       { 0, NULL },
+       ALL_ZERO
 };
 
 static int nma_send_req(const struct sr_dev_inst *sdi, int req, char *params)
@@ -51,7 +51,8 @@ static int nma_send_req(const struct sr_dev_inst *sdi, int req, char *params)
        devc->last_req = req;
        devc->last_req_pending = TRUE;
 
-       if (serial_write_blocking(serial, buf, len, 0) < 0) {
+       if (serial_write_blocking(serial, buf, len,
+                       serial_timeout(serial, len)) < 0) {
                sr_err("Unable to send request.");
                devc->last_req_pending = FALSE;
                return SR_ERR;
@@ -90,7 +91,7 @@ static void nma_process_line(const struct sr_dev_inst *sdi)
        int mmode, devstat;     /* Measuring mode, device status */
        float value;    /* Measured value */
        float scale;    /* Scaling factor depending on range and function */
-       struct sr_datafeed_analog analog;
+       struct sr_datafeed_analog_old analog;
        struct sr_datafeed_packet packet;
 
        devc = sdi->priv;
@@ -119,7 +120,7 @@ static void nma_process_line(const struct sr_dev_inst *sdi)
        /* Start decoding. */
        value = 0.0;
        scale = 1.0;
-       memset(&analog, 0, sizeof(struct sr_datafeed_analog));
+       memset(&analog, 0, sizeof(struct sr_datafeed_analog_old));
 
        /*
         * The numbers are hex digits, starting from 0.
@@ -363,9 +364,9 @@ static void nma_process_line(const struct sr_dev_inst *sdi)
        analog.data = &value;
 
        memset(&packet, 0, sizeof(struct sr_datafeed_packet));
-       packet.type = SR_DF_ANALOG;
+       packet.type = SR_DF_ANALOG_OLD;
        packet.payload = &analog;
-       sr_session_send(devc->cb_data, &packet);
+       sr_session_send(sdi, &packet);
 
        /* Finish processing. */
        devc->num_samples++;
@@ -413,14 +414,14 @@ SR_PRIV int norma_dmm_receive_data(int fd, int revents, void *cb_data)
        /* If number of samples or time limit reached, stop acquisition. */
        terminating = FALSE;
        if (devc->limit_samples && (devc->num_samples >= devc->limit_samples)) {
-               sdi->driver->dev_acquisition_stop(sdi, cb_data);
+               sdi->driver->dev_acquisition_stop(sdi);
                terminating = TRUE;
        }
 
        if (devc->limit_msec) {
                elapsed_s = g_timer_elapsed(devc->elapsed_msec, NULL);
                if ((elapsed_s * 1000) >= devc->limit_msec) {
-                       sdi->driver->dev_acquisition_stop(sdi, cb_data);
+                       sdi->driver->dev_acquisition_stop(sdi);
                        terminating = TRUE;
                }
        }