static const uint64_t timebases[][2] = {
/* picoseconds */
- { 20, 1000000000000 },
- { 50, 1000000000000 },
- { 100, 1000000000000 },
- { 200, 1000000000000 },
- { 500, 1000000000000 },
+ { 20, UINT64_C(1000000000000) },
+ { 50, UINT64_C(1000000000000) },
+ { 100, UINT64_C(1000000000000) },
+ { 200, UINT64_C(1000000000000) },
+ { 500, UINT64_C(1000000000000) },
/* nanoseconds */
{ 1, 1000000000 },
{ 2, 1000000000 },
struct sr_analog_encoding encoding;
struct sr_analog_meaning meaning;
struct sr_analog_spec spec;
- char buf[8];
(void)fd;
(void)revents;
if (ch->type != SR_CHANNEL_ANALOG)
return SR_ERR;
- /* Pass on the received data of the channel(s). */
- if (sr_scpi_read_data(sdi->conn, buf, 4) != 4) {
- sr_err("Reading header failed, scope probably didn't send any data.");
- return TRUE;
- }
-
if (sr_scpi_get_block(sdi->conn, NULL, &data) != SR_OK) {
if (data)
g_byte_array_free(data, TRUE);
return SR_ERR;
if (analog.num_samples == 0) {
+ g_free(analog.data);
+
/* No data available, we have to acquire data first. */
g_snprintf(command, sizeof(command), "ARM;WAIT;*OPC;C%d:WAVEFORM?", ch->index + 1);
sr_scpi_send(sdi->conn, command);
} else {
/* Update sample rate if needed. */
if (state->sample_rate == 0)
- if (lecroy_xstream_update_sample_rate(sdi, analog.num_samples) != SR_OK)
+ if (lecroy_xstream_update_sample_rate(sdi, analog.num_samples) != SR_OK) {
+ g_free(analog.data);
return SR_ERR;
+ }
}
/*
sr_dev_acquisition_stop(sdi);
} else {
devc->current_channel = devc->enabled_channels;
+
+ /* Wait for trigger, then begin fetching data. */
+ g_snprintf(command, sizeof(command), "ARM;WAIT;*OPC");
+ sr_scpi_send(sdi->conn, command);
+
lecroy_xstream_request_data(sdi);
}