I think having the work fn return "-1" will cause the flowgraph to exit, so you 
could potentially have a "self.count = 1" in __init__ and then when you've 
output >= self.count, have work return -1

-Doug

Douglas Anderson | Intern
DOC/NTIA/ITS-T | 325 Broadway St., Boulder, CO 80305 | P: 303 497 3582
________________________________
From: discuss-gnuradio-bounces+danderson=its.bldrdoc....@gnu.org 
[discuss-gnuradio-bounces+danderson=its.bldrdoc....@gnu.org] on behalf of 
Thanasis Balafoutis [abalafou...@gmail.com]
Sent: Thursday, January 22, 2015 2:12 PM
To: discuss-gnuradio@gnu.org
Subject: [Discuss-gnuradio] Fwd: Write a source block in python

Hi

I wrote a simple source block that reads a string (as a parameter) and outputs 
the corresponding array of bytes.
Here is the code:

class myblock(gr.sync_block):

    def __init__(self, helloMsg):
        gr.sync_block.__init__(self,
            name="myblock",
            in_sig=None,
            out_sig=[numpy.byte])
        self.helloMsg = helloMsg

    def work(self, input_items, output_items):
        out = output_items[0]

        test = array.array('B',self.helloMsg)
        for j in range(len(test)):
           out[j] = test[j]
        return len(output_items[0][:len(test)])

In the output I repeatedly get the helloMsg. (it seems that the work() function 
is always running)
Is it possible to get in the output my helloMsg only one time (or a specific 
amount of times) and then stop the execution of the flowgraph?

Thank you in advance!
Thanasis

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

Reply via email to