Hello 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 statement " 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
test_demo.py 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): gras.Block.__init__(self,name="test_demo", 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 self.threshold=threshold 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 limit it? I understand that work() keeps on executing till the block receives something at its input ports. I want work() to return the control to main flowgraph upon satisfying a user specified condition such as if (i=5): self.mark_done() It should ignore all the pending packets of the buffer/queue. I want to start my flowgraph fresh after this process.
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio