discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] USRP tx_time tags and late packets


From: Stephen Larew
Subject: Re: [Discuss-gnuradio] USRP tx_time tags and late packets
Date: Tue, 2 May 2017 23:28:30 -0400

Answering “question” #1 that I asked below: it looks like I can use 
gr::uhd::amsg_source to get the UHD async_metadata_t.  I will experiment with 
that for now, but questions #2 and #3 still stand for me.

> On May 2, 2017, at 16:33, Stephen Larew <address@hidden> wrote:
> 
> I am having trouble with late packets at the USRP.  I am working on a TDD 
> system with GNU Radio and x310 radios.  I understand that I should use SOB 
> and EOB tags to delimit a packet and add the tx_time tag to control 
> transmission time.
> 
> Current approach: In the source block, I set the tx_time tag to a point that 
> is in the future relative to the host computer’s clock, which was 
> synchronized with the USRP at program startup.  The samples flow through the 
> graph and get to the usrp_sink block for transmission.  The latency in the 
> flowgraph seems to vary enough such that some packets are late (UHD prints 
> ‘L’) while other packets are not late.  I have set max_noutput_items when 
> calling top_block.run() to try to bound the latency, but with limited 
> improvements.
> 
> 1. In GNU Radio using stock usrp_sink, is there a method of getting the late 
> flag without having to monitor stdout and parse Ls? I recently read on 
> USRP-users that the proper way to detect late packets is to look at the 
> metadata returned from uhd’s send function. Does the usrp_sink block publish 
> this in some way?
> 
> 2. Any tips for doing *tightly timed* TDD in GNU Radio in general?  For 
> example, we are experimenting with a) setting tx_time at the source block 
> (requires predicting the flowgraph’s processing delays in order to not be 
> late at the USRP) and b) setting tx_time at a custom block just before the 
> usrp_sink so that most of the flowgraph processing delays are not a factor 
> when computing a tx_time.  What approaches have been taken by others?
> 
> 3. When or why would supplying a max_noutput_items to top_block.run() not be 
> passed on to or respected by blocks in a flow graph?  My colleague observed 
> that noutput_items given to work() was greater than what was given to 
> top_block.run().  Do tagged stream blocks change the scheduler behavior w.r.t 
> max_noutput_items?
> 
> -Stephen



reply via email to

[Prev in Thread] Current Thread [Next in Thread]