New Latency Controls

There's been an expressed desire for better control over the latency of a GNU Radio flowgraph. We have added this capability as of version 3.5.1. Now, when you call tb.start() or tb.run(), these functions take a parameter that specifies the maximum noutput_items a block can ever receive. This means that the most latency you'll see in a block is based off this number.

If you don't change anything in any existing applications, nothing will change as the default is a huge number that no block will ever be asked to process.

Also, for running wxGUI applications, you set this value when create the stdgui2.stdapp as the last parameter called max_noutput_items like in the uhd_fft.py app:

app = stdgui2.stdapp(app_top_block, "UHD FFT", nstatus=1, max_noutput_items=8000)

Right now, this method exerts global control over the flow graph. In the future, if this global control isn't quite enough, we can look into adding a set function to the gr_block class to allow us to set a max noutput_items value for each block that would supersede the global value.

We are really interested to hear feedback from our users who have been requesting this kind of control over latency.