]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/yokogawa-dlm/protocol_wrappers.c
yokogawa-dlm: Fix number of digital groups
[libsigrok.git] / src / hardware / yokogawa-dlm / protocol_wrappers.c
index 419420d14b83a508ca0dce5d505ad3f1b1ed91e6..5f5b5bfab7478d6461b98980964f14513f571ff4 100644 (file)
@@ -92,6 +92,7 @@ int dlm_trigger_slope_get(struct sr_scpi_dev_inst *scpi,
        }
 
        g_free(resp);
+
        return result;
 }
 
@@ -253,7 +254,6 @@ int dlm_digital_pod_state_set(struct sr_scpi_dev_inst *scpi, int pod,
                return sr_scpi_send(scpi, ":LOGIC:MODE OFF");
 }
 
-
 int dlm_response_headers_set(struct sr_scpi_dev_inst *scpi,
                const gboolean value)
 {
@@ -268,11 +268,26 @@ int dlm_acquisition_stop(struct sr_scpi_dev_inst *scpi)
        return sr_scpi_send(scpi, ":STOP");
 }
 
-
 int dlm_acq_length_get(struct sr_scpi_dev_inst *scpi,
-               int *response)
+               uint32_t *response)
 {
-       return sr_scpi_get_int(scpi, ":WAVEFORM:LENGTH?", response);
+       int ret;
+       char *s;
+       long tmp;
+
+       if (sr_scpi_get_string(scpi, ":WAVEFORM:LENGTH?", &s) != SR_OK)
+               if (!s)
+                       return SR_ERR;
+
+       if (sr_atol(s, &tmp) == SR_OK)
+               ret = SR_OK;
+       else
+               ret = SR_ERR;
+
+       g_free(s);
+       *response = tmp;
+
+       return ret;
 }
 
 int dlm_chunks_per_acq_get(struct sr_scpi_dev_inst *scpi, int *response)