Additional code to GRC flowgraph

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

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

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

Try the block search (magnifier button in GRC), type in “import” :slight_smile:

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

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]
To: [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]

      > To: [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]

      > >
      https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

      >

      >

      > _______________________________________________

      > Discuss-gnuradio mailing list

      > [email protected]

      > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio








  _______________________________________________

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

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]n.invalid
[mailto:[email protected]n.invalid] On
Behalf Of Marcus M.
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” :slight_smile:
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

skynet.kill_sarah()
messages containing the changed parameter to the block that needs
On 07/03/2015 04:27 PM, Daniel Brogren wrote:


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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs