One way to do this is to create a flowgraph, such as foo.grc. This will
generate a Python file that you can import into another file, bar.py:
#!/usr/bin/env python2
import foo
if __name__ == '__main__':
tb = foo.foo()
# custom code
print "samp_rate:", tb.get_samp_rate()
# standard stuff
tb.start()
try:
raw_input('Press Enter to quit: ')
except EOFError:
pass
tb.stop()
tb.wait()
You can add custom stuff into bar.py while being able to modify foo in GRC. I'm
not sure if this applies directly to what you want to do, but I've found it
useful for testing while avoiding having GRC overwrite your custom code.
Of course, another way to do this is to export your flowgraph as a hierarchical
block, which you then import into a top level flowgraph. Your top level can
stay the same but you can keep iterating on the hierarchical block.
Sean
From: [email protected]
[mailto:[email protected]] On Behalf
Of Marcus Müller
Sent: Monday, July 06, 2015 9:33 AM
To: [email protected]
Subject: Re: [Discuss-gnuradio] Additional code to GRC flowgraph
As I said, if that's the case, avoid using function probes but just use the
MPSK estimator (not the estimator probe), and write your own block that just
takes the tags that come from that, and translates them to messages that you
send to another block that does something useful with them (e.g. adjusting a
frequency correction etc.)
Best regards,
Marcus
On 07/06/2015 12:11 PM, Daniel Brogren wrote:
Sorry for for that.... I thought the "imoprt" block was a type of block that I
could create from the modtool.
but
In the import-block I can import modules. But I can still not import actuall
code into my top_block and I can not call functions from the import-block. What
I want to avoid is to add code in the top_block manually since I'm normally
using the GRC to generate the top_block.
/Daniel
________________________________
Date: Mon, 6 Jul 2015 09:43:24 +0200
From: [email protected]<mailto:[email protected]>
To: [email protected]<mailto:[email protected]>
Subject: Re: [Discuss-gnuradio] Additional code to GRC flowgraph
Try the block search (magnifier button in GRC), type in "import" :)
On 07/06/2015 09:33 AM, Daniel Brogren wrote:
Hi again
I have a MPSK SNR Estimator Probe and a Function Probe that calculates the SNR.
I can not find any information regarding "import" block.
BR
Daniel Brogren
> Date: Fri, 3 Jul 2015 18:46:12 +0200
> From: [email protected]<mailto:[email protected]>
> To: [email protected]<mailto:[email protected]>
> Subject: Re: [Discuss-gnuradio] Additional code to GRC flowgraph
>
> Hi Daniel,
>
> if your code really just looks like
>
> from awesometoolkit import skynet
> skynet.kill_sarah()
>
> you can put that into an "import" block.
>
> But: what you describe doesn't sound like you want to modify the top
> block -- it sounds more like you'd want a block to calculate SNR, and
> every f_sample*3 samples change some other block.
>
> Now, this completely depends on the block where the freq. offset is
> used, but you can just write a block (in python or C++, only matters for
> performance), and give that block an message output port, and send
> messages containing the changed parameter to the block that needs
> adjustment.
>
> If you take a look at the frequency xlating fir filter block, it has a
> message port named "freq", which takes in PMT messages in form of
> tuples; these tuples must be of the form
> pmt.pair(pmt.intern("freq"), pmt.from_double(123.131) )
>
>
> Best regards,
> Marcus
> On 07/03/2015 04:27 PM, Daniel Brogren wrote:
> > Hi
> >
> > I'm working with a receiver application in GNU Radio Companion. I would
> > like to add some additional code to the top block but I still want to be
> > able to work with the GRC. Is there a way to add this extra code without
> > the code will be removed when I re-generate the flowgraph from GRC
> > or
> > Could I create a new block that can access the variables in the top block
> > or can execute the set/get functions for the variables in the top block.
> >
> > What I'm trying to accomplish is that every 3rd second I will check the SNR
> > and then do som trimming of a freq-offset. I'm a newbie with GNU Radio and
> > Python but have read through the guided tutorials.
> >
> > BR
> > Daniel Brogren
> > _______________________________________________
> > Discuss-gnuradio mailing list
> > [email protected]<mailto:[email protected]>
> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]<mailto:[email protected]>
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
[email protected]<mailto:[email protected]>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list
[email protected]<mailto:[email protected]>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
[email protected]<mailto:[email protected]>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio