I sort of got this peak detecting working. Expect one problem which I will address in a separate thread....
> Sent: Thursday, July 08, 2021 at 2:44 PM > From: "Phil Wiggum" <p1mail2...@mail.com> > To: discuss-gnuradio@gnu.org > Subject: Re: Update QT GUI Label from Embedded Python Block > > Hi Marcus, > > I solved my Label issue with a 'Python Snippet' as follows: > Properties of Python Snippet: > - Section of Flowgraph: Main - After Init > - Code Snipet: self.epy_block_0.set_parent(self) > > And in my 'Python Block' added set_parent function. > 'Python Block' code: > > class blk(gr.sync_block): > def __init__(self ): > gr.sync_block.__init__( self, name='Embedded Python Block', > in_sig=[np.float32], out_sig=None ) > > def set_parent(self,parent): > self.parent=parent > self.parent._label_label.setText("10MHz") #label updated here > > def work(self, inp, out): > return 0 > > Now about my blocks and the my real problem I'm try solve in Gnuradio! > I would like to detect a peak frequency in a FFT plot and show that frequency > value in my QT GUI Label. > So far I done following: > > SDR -> Frequency Xlating FIR Filter (Decimation:1, > Taps:firdes.low_pass(2,smprate,bw,bw/5,6), Center:100K, Sample Rate:5M) -> > Rational Resampler (Interpol:100k, Decimat: 5M, Taps: Fract BW: 0) *-> QT GUI > Frequency Sink. > > That works nice and I get visible peak frequency. > > And now my attempt to get the value of that peak frequency into my GUI Label. > *-> Log ower FFT -> Max -> Python Block > > I don't get particular far. The python code seems to produce overruns and > can't keep up with the amount of data. > Is it right to say that all 'work' functions in all blocks are called > synchronously even if no data has changed. > > Do you have any suggestion of blocks that I should use for detecting the FFT > peak frequency? > > /Thanks > Phil > > > > Hi Phil, > > > > can't do that! The label can only be changed by calling setters in Python > > that > > are not in > > the namespace you (directly) have access to in your block (you can hack > > together things > > where you just hard-code the top_block's name, but uhggggh ugliness). > > > > Also, sounds like the right job, but the wrong tool. Your block seems to be > > something like > > a decimator, i.e. it takes in N samples and produces 1 value. Is that right? > > > > Best regards, > > Marcsu > > >