X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fyokogawa-dlm%2Fprotocol_wrappers.c;h=e2a05be9e2ba27726093c33201f0d128b8761b8a;hb=b02bb45f4cf6378520e5a5b82ff39013cfa270b6;hp=419420d14b83a508ca0dce5d505ad3f1b1ed91e6;hpb=8ab929d614262dc446ee2e948ca583d31110b14b;p=libsigrok.git
diff --git a/src/hardware/yokogawa-dlm/protocol_wrappers.c b/src/hardware/yokogawa-dlm/protocol_wrappers.c
index 419420d1..e2a05be9 100644
--- a/src/hardware/yokogawa-dlm/protocol_wrappers.c
+++ b/src/hardware/yokogawa-dlm/protocol_wrappers.c
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+#include
#include "protocol_wrappers.h"
#define MAX_COMMAND_SIZE 64
@@ -92,6 +93,7 @@ int dlm_trigger_slope_get(struct sr_scpi_dev_inst *scpi,
}
g_free(resp);
+
return result;
}
@@ -191,7 +193,7 @@ int dlm_analog_chan_wrange_get(struct sr_scpi_dev_inst *scpi, int channel,
int result;
g_snprintf(cmd, sizeof(cmd), ":WAVEFORM:TRACE %d", channel);
- result = sr_scpi_send(scpi, cmd);
+ result = sr_scpi_send(scpi, cmd);
result &= sr_scpi_get_float(scpi, ":WAVEFORM:RANGE?", response);
return result;
}
@@ -203,7 +205,7 @@ int dlm_analog_chan_woffs_get(struct sr_scpi_dev_inst *scpi, int channel,
int result;
g_snprintf(cmd, sizeof(cmd), ":WAVEFORM:TRACE %d", channel);
- result = sr_scpi_send(scpi, cmd);
+ result = sr_scpi_send(scpi, cmd);
result &= sr_scpi_get_float(scpi, ":WAVEFORM:OFFSET?", response);
return result;
}
@@ -253,7 +255,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,18 +269,34 @@ 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)
{
int result, acq_len;
- /* Data retrieval queries such as :WAVEFORM:SEND? will only return
+ /*
+ * Data retrieval queries such as :WAVEFORM:SEND? will only return
* up to 12500 samples at a time. If the oscilloscope operates in a
* mode where more than 12500 samples fit on screen (i.e. in one
* acquisition), data needs to be retrieved multiple times.