The examples you can search for in the code base (recommend you do this) show syntax such as
def __init__(self, input_rate, sps): gr.hier_block2.__init__(self, "atsc_rx", gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature gr.io_signature(1, 1, gr.sizeof_char)) # Output signature On Thu, Feb 4, 2021 at 1:58 PM George Edwards <gedwards....@gmail.com> wrote: > Hi Tim, > > Thanks for your suggestion! I just tried it and it does not work. The > Python OOT def __init__(self, ....) method requires that one fills in in_sig > = xxx and out_sig = xxx. > I tried your suggestion above for variable number of inputs and set: > in_sig = [gr.io_signature(1, -1, gr.sizeof_gr_complex)] > > and I leave the yml file as is when I had the static number of inputs (in_sig > = [complex64, complex64, complex64]) shown below > inputs: > - domain: stream > dtype: complex > multiplicity: '3' > It gives a TypeError: data type not understood > I tried a bunch of combinations based on the above change you suggested, > but GRC kept failing when I tried to run it.! > > Thanks again for your suggestion! > Regards, > George > > > > On Thu, Feb 4, 2021 at 8:01 AM Tim Huggins <huggins.timo...@yahoo.com> > wrote: > >> George, >> >> I would recommend taking a look at some of the existing blocks that have >> variable inputs to accomplish this (especially for the YML file). A YML >> example for a variable input can be found here: >> >> >> https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/grc/blocks_multiply_xx.block.yml >> >> I haven't run a test using this line in a python block yet, but two >> different examples are shown below that I believe should work (or should >> with some minor tweaks). The first doesn't limit the number of inputs while >> the second one does (at 8). >> >> gr.io_signature(1, -1, gr.sizeof_gr_complex)) >> >> gr.io_signature(1, 8, gr.sizeof_float) >> >> I don't know if there is a complete python reference for GNURadio 3.8, >> but this should be helpful to get you close as well: >> https://www.gnuradio.org/doc/sphinx-v3.7.9.2/ >> >> Good luck, >> >> Tim >> >> On Thursday, February 4, 2021, 12:01:07 AM EST, George Edwards < >> gedwards....@gmail.com> wrote: >> >> >> Hi Gavin, >> >> Thanks for the information! >> >> Does this mean that if I wanted 3 inputs and 5 outputs and all floating >> point values, then inside the Python code, I simply set >> in_sig = [numpy.float32] >> out_sign = [numpy.float32] >> >> And, in the yml file I set: >> inputs: >> - domain: stream >> dtype: float >> multiplicity: '3' >> >> outputs: >> - domain: stream >> dtype: float >> multiplicity: '5' >> >> Would this be correct? >> Thanks again for your help! >> >> Regards, >> George >> >> On Wed, Feb 3, 2021 at 5:26 PM Gavin Jacobs <apriljunk...@hotmail.com> >> wrote: >> >> In 3.7, you would use the <nports> tag, but in 3.8 the trick to setting >> multiple ins/outs in the YML file, is the keyword "multiplicity". You >> can see the details of how to configure here: >> https://wiki.gnuradio.org/index.php/YAML_GRC >> >> YAML GRC - GNU Radio <https://wiki.gnuradio.org/index.php/YAML_GRC> >> Starting with release 3.8, YAML replaces XML as the file format for GNU >> Radio Companion. This is triggered by switching from Cheetah to Mako as the >> templating engine, since Cheetah does not support Python 3. >> wiki.gnuradio.org >> >>