How to limit the size of buffer/queue for a block?


The flowgraph of my top_block has test_demo as one of the blocks. The
work() function associated with it has only one print statement.
When I execute the flowgraph, the statement keeps on printing the
" I AM IN WORK" on the screen. Why does it happen?
My flowgraph is :
File source—>stream to datagram—>test_demo---->datagram to
stream----->file sink is :

import timing
import numpy
import gras
import Queue
import thread
from gnuradio import gr
from gnuradio import digital
from gnuradio import uhd
import grextras

class test_demo(gras.Block):

def init(self, threshold):
in_sig = [numpy.uint8,numpy.uint8,numpy.uint8],
out_sig = [numpy.uint8,numpy.uint8])
self.input_config(0).reserve_items = 0
self.input_config(1).reserve_items = 0
self.output_config(1).reserve_items = 4096
self.output_config(0).reserve_items = 4096
print “inside test_demo”

def work(self,ins,outs):
print “I AM IN WORK”

If it is due to the size of buffer/queue of the block then how can I
I understand that work() keeps on executing till the block receives
something at its input ports. I want work() to return the control to
flowgraph upon satisfying a user specified condition such as
if (i=5):
It should ignore all the pending packets of the buffer/queue.
I want to start my flowgraph fresh after this process.

On 03/11/2014 02:20 PM, Sumedha G. wrote: is :

when posting Python code, make sure the indents get preserved (ideally,
don’t send HTML emails).


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs