【发布时间】:2016-06-18 03:50:12
【问题描述】:
我正在用 Python 编写自己的 GNU Radio 块,我想为该块的输入和输出缓冲区(或其中一个)设置最小缓冲区大小。
有没有可以做到这一点的函数或代码?
【问题讨论】:
标签: gnuradio gnuradio-companion
我正在用 Python 编写自己的 GNU Radio 块,我想为该块的输入和输出缓冲区(或其中一个)设置最小缓冲区大小。
有没有可以做到这一点的函数或代码?
【问题讨论】:
标签: gnuradio gnuradio-companion
您只能设置最小 输出 缓冲区大小(这不是问题;每个输入缓冲区都是另一个块的输出缓冲区),使用 gr.block.set_min_output_buffer(port, size) 调用,例如通过执行以下操作:
def __init__(self):
gr.sync_block.__init__(self,
name="block_with_buffer",
in_sig=[numpy.float32],
out_sig=[numpy.float32])
self.set_min_output_buffer(2**20)
在你的构造函数中,或者your_block_handle.set_min_output_buffer(2**20)在您用来设置流程图的任何 python 脚本中,或
但是,GNU Radio 忘记将该调用包装在其 python 块类中。因此,您目前不能将它与 python 块一起使用,抱歉,只能与 C++ 块一起使用。我目前正在写a patch for that;如果一切顺利,你很快就会在 master 分支上看到这个:)
【讨论】:
self.set_min_output_buffer(2**20) 将不起作用,对吗? (这意味着我必须只用 C++ 编写我的块) 2. 如果这不是你的意思,那么我仍然不清楚这一点,因为我在 python 中编写了我的块,并且当我在 __init__(self) 中添加了调用时:正如您在第一个建议中所做的那样,并运行我的代码,我出现以下错误: AttributeError: object has no attribute 'set_min_output_buffer'