自定义源块的 GNURadio [general_] 工作函数的调度
Scheduling of GNURadio [general_] work function for custom source block
我正在尝试在 Python 中实现一个 GNURadio 源代码块,它必须在每次调用 [general_] 工作函数时生成一个固定大小的向量。
作为第一个玩具示例,我尝试仅输出一个常量值向量,该值应在每次调用 [general_] 工作函数时发生变化。
import numpy
import sys
from gnuradio import gr
class my_source_vf(gr.sync_block):
"""
docstring for block
"""
def __init__(self, v_size):
self.v_size = v_size
self.mult = 1
self.buff = numpy.ones(v_size)
gr.sync_block.__init__(self,
name="my_source_vf",
in_sig=None,
#out_sig=[numpy.float32])
out_sig=[(numpy.float32, self.v_size)])
def work(self, input_items, output_items):
# <+signal processing here+>
print len(output_items)
out = output_items[0]
out[0][:] = self.buff*self.mult
self.mult = self.mult+1
return self.v_size
然而,当我将它连接到 QT GUI Vector sink 块时,我只看到 0 和 1 之间的振荡,这让我认为 [general_] 工作函数只被调用一次。
你不能 return v_size
– 这是 一个项目 的长度,但你应该 return 您在本次通话中生产的物品数量。
我正在尝试在 Python 中实现一个 GNURadio 源代码块,它必须在每次调用 [general_] 工作函数时生成一个固定大小的向量。
作为第一个玩具示例,我尝试仅输出一个常量值向量,该值应在每次调用 [general_] 工作函数时发生变化。
import numpy
import sys
from gnuradio import gr
class my_source_vf(gr.sync_block):
"""
docstring for block
"""
def __init__(self, v_size):
self.v_size = v_size
self.mult = 1
self.buff = numpy.ones(v_size)
gr.sync_block.__init__(self,
name="my_source_vf",
in_sig=None,
#out_sig=[numpy.float32])
out_sig=[(numpy.float32, self.v_size)])
def work(self, input_items, output_items):
# <+signal processing here+>
print len(output_items)
out = output_items[0]
out[0][:] = self.buff*self.mult
self.mult = self.mult+1
return self.v_size
然而,当我将它连接到 QT GUI Vector sink 块时,我只看到 0 和 1 之间的振荡,这让我认为 [general_] 工作函数只被调用一次。
你不能 return v_size
– 这是 一个项目 的长度,但你应该 return 您在本次通话中生产的物品数量。