dslogic: Removed trigger_fired option

This commit is contained in:
Joel Holdsworth 2017-06-15 14:52:28 -06:00 committed by Uwe Hermann
parent 658caaf0d1
commit 5e7e327ac8
2 changed files with 29 additions and 32 deletions

View File

@ -800,37 +800,36 @@ static void LIBUSB_CALL receive_transfer(struct libusb_transfer *transfer)
} else { } else {
devc->empty_transfer_count = 0; devc->empty_transfer_count = 0;
} }
if (devc->trigger_fired) {
if (!devc->limit_samples || devc->sent_samples < devc->limit_samples) {
/* Send the incoming transfer to the session bus. */
if (devc->limit_samples && devc->sent_samples + cur_sample_count > devc->limit_samples)
num_samples = devc->limit_samples - devc->sent_samples;
else
num_samples = cur_sample_count;
if (devc->trigger_pos > devc->sent_samples if (!devc->limit_samples || devc->sent_samples < devc->limit_samples) {
&& devc->trigger_pos <= devc->sent_samples + num_samples) { /* Send the incoming transfer to the session bus. */
/* DSLogic trigger in this block. Send trigger position. */ if (devc->limit_samples && devc->sent_samples + cur_sample_count > devc->limit_samples)
trigger_offset = devc->trigger_pos - devc->sent_samples; num_samples = devc->limit_samples - devc->sent_samples;
/* Pre-trigger samples. */ else
send_data(sdi, (uint8_t *)transfer->buffer, num_samples = cur_sample_count;
trigger_offset * unitsize, unitsize);
devc->sent_samples += trigger_offset; if (devc->trigger_pos > devc->sent_samples
/* Trigger position. */ && devc->trigger_pos <= devc->sent_samples + num_samples) {
devc->trigger_pos = 0; /* DSLogic trigger in this block. Send trigger position. */
packet.type = SR_DF_TRIGGER; trigger_offset = devc->trigger_pos - devc->sent_samples;
packet.payload = NULL; /* Pre-trigger samples. */
sr_session_send(sdi, &packet); send_data(sdi, (uint8_t *)transfer->buffer,
/* Post trigger samples. */ trigger_offset * unitsize, unitsize);
num_samples -= trigger_offset; devc->sent_samples += trigger_offset;
send_data(sdi, (uint8_t *)transfer->buffer /* Trigger position. */
+ trigger_offset * unitsize, num_samples * unitsize, unitsize); devc->trigger_pos = 0;
devc->sent_samples += num_samples; packet.type = SR_DF_TRIGGER;
} else { packet.payload = NULL;
send_data(sdi, (uint8_t *)transfer->buffer, sr_session_send(sdi, &packet);
num_samples * unitsize, unitsize); /* Post trigger samples. */
devc->sent_samples += num_samples; num_samples -= trigger_offset;
} send_data(sdi, (uint8_t *)transfer->buffer
+ trigger_offset * unitsize, num_samples * unitsize, unitsize);
devc->sent_samples += num_samples;
} else {
send_data(sdi, (uint8_t *)transfer->buffer,
num_samples * unitsize, unitsize);
devc->sent_samples += num_samples;
} }
} }
@ -912,7 +911,6 @@ static int start_transfers(const struct sr_dev_inst *sdi)
devc->sent_samples = 0; devc->sent_samples = 0;
devc->acq_aborted = FALSE; devc->acq_aborted = FALSE;
devc->empty_transfer_count = 0; devc->empty_transfer_count = 0;
devc->trigger_fired = TRUE;
num_transfers = get_number_of_transfers(devc); num_transfers = get_number_of_transfers(devc);

View File

@ -122,7 +122,6 @@ struct dev_context {
uint64_t capture_ratio; uint64_t capture_ratio;
/* Operational settings */ /* Operational settings */
gboolean trigger_fired;
gboolean acq_aborted; gboolean acq_aborted;
unsigned int sent_samples; unsigned int sent_samples;