Block inspection for GRC


I’m trying to find a way to avoid writing some wrapper or description
for every block to be used in GRC. I know there are some properties that
can be found out, like the number of inputs and outputs, the names of
functions of an object (find all setters). I had a look at the
inspection module, and pyalamode form wx is really nice doing what I
want. Still, I want to make the Companion do this things.


  • details is commented as “really only for internal use”. Is any
    information in details that cannot be found in the signatures or
    elsewhere? I tried to access members of details and my python shell
  • I once read about the connection magic, like connecting to an audio
    sink connects to left and right channel if not stated otherwise. I read
    gnuradio-core/src/python/gnuradio/ but I cannot find
    the responsible code. Any hint? I’d like to make audio sources
    connectible per channel or as a single sink.
  • Which properties are not visible/inspectable from python and need
    extra information? I guess some blocks need a priori assumptions, which
    would have to be hinted to find all properties.
    Of course grouping has to be done, but idealy some information about
    what kind of block it is will be some day inspectable.
  • Any nice way to find out what can be imported from the gnuradio
  • How can I find out which sample rates are supported by a block,
    especially audio blocks?

I’d like to have the Companion search the gnuradio module for blocks,
examine the blocks, like finding i/o signatures and types, readable
properties, access functions (setters), and automagically group them.
When a new block is contributed to gnuradio, the Companion gets its
properties and the block is usable by simply restarting the Companion.


Engineers motto: cheap, good, fast: choose any two
Patrick S.
Student of Telematik, Techn. University Graz, Austria