Commit 86f76e6c authored by Soeren Apel's avatar Soeren Apel

lecroy-xstream: Perform acquisition if no data is available

parent 6e9606db
......@@ -620,6 +620,7 @@ static int lecroy_waveform_to_analog(GByteArray *data,
SR_PRIV int lecroy_xstream_receive_data(int fd, int revents, void *cb_data)
{
char command[MAX_COMMAND_SIZE];
struct sr_channel *ch;
struct sr_dev_inst *sdi;
struct dev_context *devc;
......@@ -644,21 +645,12 @@ SR_PRIV int lecroy_xstream_receive_data(int fd, int revents, void *cb_data)
ch = devc->current_channel->data;
/*
* Send "frame begin" packet upon reception of data for the
* first enabled channel.
*/
if (devc->current_channel == devc->enabled_channels) {
packet.type = SR_DF_FRAME_BEGIN;
sr_session_send(sdi, &packet);
}
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.");
sr_err("Reading header failed, scope probably didn't send any data.");
return TRUE;
}
......@@ -675,6 +667,22 @@ SR_PRIV int lecroy_xstream_receive_data(int fd, int revents, void *cb_data)
if (lecroy_waveform_to_analog(data, &analog) != SR_OK)
return SR_ERR;
if (analog.num_samples == 0) {
/* 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);
return TRUE;
}
/*
* Send "frame begin" packet upon reception of data for the
* first enabled channel.
*/
if (devc->current_channel == devc->enabled_channels) {
packet.type = SR_DF_FRAME_BEGIN;
sr_session_send(sdi, &packet);
}
meaning.channels = g_slist_append(NULL, ch);
packet.payload = &analog;
packet.type = SR_DF_ANALOG;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment