Hello Jeff, Thanks! I kept playing with it and got it to work.
Regards, George On Thu, Feb 4, 2021 at 1:54 PM Jeff Long <willco...@gmail.com> wrote: > 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 >>> >>>