rigol-ds: Handle partial analog frame reads.
Reading a frame over the DS1xx2 RS232 connection now sometimes works, but most of the time stalls part way through with g_poll showing the fd as not ready.
This commit is contained in:
parent
9dfeb81b09
commit
56868b5d6b
|
@ -517,19 +517,15 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
|
|||
rigol_ds_set_wait_event(devc, WAIT_BLOCK);
|
||||
} else
|
||||
sr_dbg("%d of %d block bytes read", devc->num_block_read, devc->num_block_bytes);
|
||||
|
||||
devc->num_frame_bytes += len;
|
||||
|
||||
if (devc->num_frame_bytes < devc->analog_frame_size)
|
||||
/* Don't have the whole frame yet. */
|
||||
return TRUE;
|
||||
|
||||
sr_dbg("Frame completed, %d samples", devc->num_frame_bytes);
|
||||
} else {
|
||||
if (len != DS1000_ANALOG_LIVE_WAVEFORM_SIZE)
|
||||
/* Don't have the whole frame yet. */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
devc->num_frame_bytes += len;
|
||||
|
||||
if (devc->num_frame_bytes < devc->analog_frame_size)
|
||||
/* Don't have the whole frame yet. */
|
||||
return TRUE;
|
||||
|
||||
sr_dbg("Frame completed, %d samples", devc->num_frame_bytes);
|
||||
} else {
|
||||
logic.length = len - 10;
|
||||
logic.unitsize = 2;
|
||||
|
|
Loading…
Reference in New Issue