discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Issue with the Message API in Python


From: CEL
Subject: Re: [Discuss-gnuradio] Issue with the Message API in Python
Date: Fri, 24 May 2019 15:49:44 +0000

The start() function is something every block is free to override, and
is meant to allow any GNU Radio block to do internal setup just before
the flow graph starts to run. 
Its return value is true for "hey, I'm ready" and false for "no, sorry,
something went wrong, the flow graph incorporating me can't start".

Best regards,
Marcus

On Fri, 2019-05-24 at 15:53 +0200, Sebastian Sahlin wrote:
> Okay, this appears to work:
> 
> def start(self):
> threading.Thread(target=self.send_message('Hello World')).start()
> return true
> 
> However I am unsure why the return value is necessary (figured it out through 
> an error message). Is there somewhere in the documentation you can point me 
> to find more info about this?
> 
> Regards
> 
> 
> Den fre 24 maj 2019 kl 14:45 skrev Sebastian Sahlin <address@hidden>:
> > Hi Marcus,
> > 
> > Aha! I saw hints of this in the documentation but couldn't fully connect 
> > the dots. 
> > 
> > Would this be the start() function of top_block, or the block in question? 
> > How would the syntax look like then?
> > 
> > Regards
> > 
> > Den tors 23 maj 2019 kl 18:32 skrev Müller, Marcus (CEL) <address@hidden>:
> > > Hi Sebastian,
> > > 
> > > classic one!
> > > 
> > > You send the messages in the block's constructor in an endless loop.
> > > 
> > > So, that constructor never finishes.
> > > 
> > > Thus, the block never can get message-connected. Thus, your messages
> > > disappear.
> > > 
> > > You can't publish message in a constructor. Spawn off a thread in the
> > > `start()` method to do that.
> > > 
> > > Best regards,
> > > Marcus
> > > 
> > > On Thu, 2019-05-23 at 17:42 +0200, Sebastian Sahlin wrote:
> > > > Hi,
> > > > 
> > > > For learning purposes I'm trying to replicate the functionality of the 
> > > > Message Strobe block in Python, however I'm stumped by what should be a 
> > > > very basic function. I'm simply attempting to publish a message every x 
> > > > seconds:
> > > > 
> > > > def __init__(self, period):
> > > >         gr.basic_block.__init__(self,
> > > >             name="msg_strobe",
> > > >             in_sig=None,
> > > >             out_sig=None)
> > > > 
> > > >         self.message_port_register_out(pmt.intern('msg_out'))
> > > > 
> > > >         while(True):
> > > >             self.send_message('Hello World')
> > > >             time.sleep(period)
> > > > 
> > > >     def send_message(self, string):
> > > >         self.message_port_pub(pmt.intern('msg_out'), pmt.intern(string))
> > > > 
> > > > However there is no message published to the Message Debug block.  
> > > > 
> > > > _______________________________________________
> > > > Discuss-gnuradio mailing list
> > > > address@hidden
> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

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