discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Empty work functions


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Empty work functions
Date: Thu, 05 Sep 2013 10:07:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8

Hi Sean,

yes, the scheduler "supports" this; I'm using this whenever I just need someone to receive messages.
So basically you do 1), which is quite easy because your "block" looks like

from pmt.pmt_to_python import pmt_to_python as pmt2py
[...]
class messageReceiver(gr.sync_block):
    message_port_identifier = pmt.intern("msg_in")

    def __init__(self, ref_to_uhd_sink):
        gr.sync_block.__init__(self, name="foo", in_sig=[], out_sig=[])
        self._uhd = _ref_to_uhd_sink
        self.message_port_register_in(self.message_port_identifier)
        self.set_msg_handler(self.message_port_identifier, self.handle_msg)

    def handle_msg(self, msg):
        print "got message", pmt2py(msg)
        self._uhd->set_command_time[...]

Happy Hacking,
Marcus
On 09/04/2013 10:28 PM, Nowlan, Sean wrote:
The implementation of the uhd_control_port block in gnuradio-extras has an empty work function because it doesn't actually process any samples. I believe gnuradio-extras uses the gnuradio advanced scheduler (GRAS), so apparently GRAS doesn't mind blocks that don't have any connections in a flowgraph or do any work. Does the standard gnuradio scheduler also support this? I just want to know for reference if the gnuradio scheduler will keep or ignore a block with no connections, or empty io_signatures, or no code body in the work function.

What I want to do is change power using timed commands independent of the data path in the flowgraphs. I can do this one of two ways:
1) Make a block with a message queue and some logic to handle timing (to play nice with the timed commands implementation, which has a limited FIFO size and only a 10 second timeout window).
2) Launch a separate thread in Python that does the same thing as 1) but isn't a block. I assume this will be a lot easier.

--sean


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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]