Hi everyone,

I am running a simple flowgraph where I use an embedded python block.

I have rewritten a forecast function.

When I run the code I get:
============
Executing: /usr/bin/python3 -u top_block.py

thread_body_wrapper :error: ERROR thread[thread-per-block[15]: <block MF
sampler and diff decoder(7)>]: TypeError: 'int' object does not support
item assignment

At:
  /n/higgins/z/anastas/GNURADIO_LAB/Final Draft Lab
8/top_block_epy_block_0.py(39): forecast
  /usr/lib/python3/dist-packages/gnuradio/gr/gateway.py(149):
handle_forecast
===============

It thinks that the second argument in forecast is an "int" instead of a
list to be populated
by the function.

What am I missing? (I am using gnuradio 3.10.1.1 (Python 3.10.12))
Also, where can i find the exact Python bindings for each of these
functions?

thanks
Achilleas

Here is the relevant code:
=====================================
class blk(gr.basic_block):  # other base classes are basic_block,
decim_block, interp_block
    """Embedded Python Block example"""

    def __init__(self, datalength=10, sps = 8):
        """arguments to this function show up as parameters in GRC"""
        gr.basic_block.__init__(
            self,
            name='MF sampler and diff decoder',
            in_sig=[np.int8, np.complex64],
            out_sig=[np.int8]
        )
        self.datalength = datalength
        self.sps = sps
        self.set_output_multiple(self.datalength)
        self.state=1

    def forecast(self, noutput_items, ninput_items_required):
        ninput_items_required[0] = noutput_items*self.sps
        ninput_items_required[1] = noutput_items*self.sps

Reply via email to