[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 04/11: uhd: added notification for tagged s
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 04/11: uhd: added notification for tagged stream preemptions/gaps |
Date: |
Sat, 26 Apr 2014 22:34:11 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
jcorgan pushed a commit to branch master
in repository gnuradio.
commit 3db5a90700029fadd44eb218127c5d0c3bb8e7f3
Author: Sean Nowlan <address@hidden>
Date: Wed Apr 2 15:34:45 2014 -0400
uhd: added notification for tagged stream preemptions/gaps
---
gr-uhd/lib/usrp_sink_impl.cc | 35 +++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc
index c96e486..316c39a 100644
--- a/gr-uhd/lib/usrp_sink_impl.cc
+++ b/gr-uhd/lib/usrp_sink_impl.cc
@@ -469,7 +469,7 @@ namespace gr {
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
- int ninput_items = noutput_items; //cuz its a sync block
+ int ninput_items = noutput_items; //cuz it's a sync block
//send a mid-burst packet with time spec
_metadata.start_of_burst = false;
@@ -481,14 +481,23 @@ namespace gr {
if(not _tags.empty())
this->tag_work(ninput_items);
- //check if there is data left to send from a burst tagged with length_tag
- //note: if a burst is started during this call to work(), tag_work()
should
- //have been called and we should have _nitems_to_send > 0.
- if(not pmt::is_null(_length_tag_key) and _nitems_to_send > 0) {
- ninput_items = std::min<long>(_nitems_to_send, ninput_items);
- //if we run out of items to send, it's the end of the burst
- if(_nitems_to_send - long(ninput_items) == 0)
- _metadata.end_of_burst = true;
+ if(not pmt::is_null(_length_tag_key)) {
+ //check if there is data left to send from a burst tagged with
length_tag
+ //If a burst is started during this call to work(), tag_work() should
have
+ //been called and we should have _nitems_to_send > 0.
+ if (_nitems_to_send > 0) {
+ ninput_items = std::min<long>(_nitems_to_send, ninput_items);
+ //if we run out of items to send, it's the end of the burst
+ if(_nitems_to_send - long(ninput_items) == 0)
+ _metadata.end_of_burst = true;
+ }
+ else {
+ //There is a tag gap since no length_tag was found immediately
following
+ //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;
+ return ninput_items;
+ }
}
#ifdef GR_UHD_USE_STREAM_API
@@ -562,13 +571,15 @@ 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, we will truncate the
previous 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.
+ //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.
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);
- [Commit-gnuradio] [gnuradio] branch master updated (754cfa7 -> a337dcb), git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 02/11: uhd: fixed tags_demo, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 01/11: gr-uhd: added tagged stream support, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 10/11: uhd: Added freq hopping example, improved tag handling in usrp_sink, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 06/11: uhd: modified tag preemption/gap handling, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 03/11: uhd: changed length_tag member variable from string to pmt symbol, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 11/11: uhd: Used uhd-internal fragmentation handling, bursty tx w/o time tags now no longer uses time specs, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 05/11: uhd: added length tag name parameter in GRC, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 07/11: uhd: Added retune-by-tag and a command interface via message passing, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 08/11: uhd: Allow post-burst tune; tag handling less restrictive, git, 2014/04/26
- [Commit-gnuradio] [gnuradio] 04/11: uhd: added notification for tagged stream preemptions/gaps,
git <=
- [Commit-gnuradio] [gnuradio] 09/11: docs: Updated uhd to reflect tag changes., git, 2014/04/26