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
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):
"""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
ninput_items_required[1] = noutput_items*self.sps
No comments:
Post a Comment