summaryrefslogtreecommitdiff
path: root/gr-uhd
diff options
context:
space:
mode:
authorSean Nowlan <sean.nowlan@gtri.gatech.edu>2014-04-03 23:28:00 -0400
committerMartin Braun <martin.braun@ettus.com>2014-04-26 23:31:54 +0200
commitfdafa6a6ed03d5bfea5e2c11584902d64032c761 (patch)
tree2fed6bad3763be5328aa3430ec9041a39751083b /gr-uhd
parentb013092531e801c4c6ac7ea64c19ed7c62846bf3 (diff)
uhd: modified tag preemption/gap handling
Diffstat (limited to 'gr-uhd')
-rw-r--r--gr-uhd/lib/usrp_sink_impl.cc11
1 files changed, 4 insertions, 7 deletions
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc
index 316c39ae2e..413952add7 100644
--- a/gr-uhd/lib/usrp_sink_impl.cc
+++ b/gr-uhd/lib/usrp_sink_impl.cc
@@ -496,6 +496,8 @@ namespace gr {
//the last sample of the previous burst. Drop samples until the next
//length_tag is found. Notify the user of the tag gap.
std::cerr << "tG" << std::flush;
+ //increment the timespec by the number of samples dropped
+ _metadata.time_spec += ::uhd::time_spec_t(0, ninput_items, _sample_rate);
return ninput_items;
}
}
@@ -572,15 +574,10 @@ namespace gr {
//length_tag found; set the start of burst flag in the metadata
else if(not pmt::is_null(_length_tag_key) and pmt::equal(key, _length_tag_key)) {
//If there are still items left to send, the current burst has been preempted.
- //Truncate the current burst by setting the end of burst flag in a mini end of
- //burst packet. The next call to work will start at the new burst. Notify the
- //user of the tag preemption.
+ //Set the items remaining counter to the new burst length. Notify the user of
+ //the tag preemption.
if(_nitems_to_send > 0) {
- ninput_items = 0;
- _nitems_to_send = 0;
- _metadata.end_of_burst = true;
std::cerr << "tP" << std::flush;
- return;
}
_nitems_to_send = pmt::to_long(value);
_metadata.start_of_burst = true;