On Tue, Feb 24, 2015 at 4:36 AM, Jorge Gallo <[email protected]> wrote:

> Hello,
>
> I tried to implement a python block which generates tuning commands every
> 5 seconds.
>      Python block: 0 inputs, 0 outputs, 1 out_msg port which must be
> declared in the constructor.
>
> I used gr_modtool. I got some trouble that I think can be easily solved.
>
>
> New python block:
>
> #!/usr/bin/env python
> import numpy
> from gnuradio import gr
> import time
>
> class generador_NN(SOMETHING_1):
>     def __init__(self):
>         SOMETHING_1.__init__(SOMETHING_2)
>     self.message_port_register_out(pmt.intern("ppm"))
>
>
>     def general_work(self):
>     while True:
>         time.sleep(5)
>         self.message_port_pub(pmt.intern("ppm"), pmt.to_pmt("freq",
> float(915e6)))
>         time.sleep(5)
>         self.message_port_pub(pmt.intern("ppm"), pmt.to_pmt("freq",
> float(916e6)))
>
>
> My trouble comes where the "SOMETHING" is:
>
> SOMETHING_1: gr.sync_block, gr.basic_block, gr.noblock ¿?
> When using gr_mod tool, which kind of block must specify? If I use sync or
> basic it complaints there are missing input/outputs. On the other hand if I
> write noblock there is no message_port_register_out method available.
> How can I solve that?
>
>
> SOMETHING_2: Depends which kind of block is the parent. Since there is no
> input/output it must be empty (self). Correct?
>
> Many thanks,
> Jorge
>


You can do it just as a gr.basic_block:

class newblock(gr.basic_block):
    """
    What the block does.
    """
    def __init__(self, args):
        gr.basic_block.__init__(self,
            name="newblock",
            in_sig=[], # No streaming ports!
            out_sig=[])
        # Register the message port
        self.message_port_register_out(pmt.intern('portname'))


You should take a look at our Guided Tutorials. The above code comes
straight from one of the example blocks we create in there that I made more
generic here.

http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials

Tom
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to