[Discuss-gnuradio] how to limit the size of buffer/queue for a block?

2014-03-11 Thread Sumedha Goyal
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_demodatagram 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


Re: [Discuss-gnuradio] how to limit the size of buffer/queue for a block?

2014-03-11 Thread Martin Braun
On 03/11/2014 02:20 PM, Sumedha Goyal wrote:
 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_demodatagram to
 stream-file sink
 
 test_demo.py is :

Sumedha,

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

M

 
 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
 


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio