【发布时间】:2021-11-25 20:51:24
【问题描述】:
我必须在 GNURadio 中创建一个消息源块。我必须使用 Windows 10 并且我不知道如何在其上安装和使用 gr-modtool,所以我正在尝试使用 Embedded Python Block 制作块。
消息块的行为方式类似于消息选通,它定期向输出端口发送消息。唯一不同的是,我的消息不是输入参数,而是需要定期计算的变量。我正在尝试了解如何操作,但没有找到太多相关信息。
所以,这个块没有输入端口,只有一个消息输出端口,那么第一部分代码应该是
class msg_block(gr.sync_block):
def __init__(self):
gr.sync_block.__init__(
self,
name="msg_block",
in_sig=None,
out_sig=None)
self.message_port_register_out(pmt.intern('msg_out'))
第一个问题是我什至无法实现一个简单的消息源。因为如果 in_sig 和 out_sig 为 None,那么工作方法“不起作用”,如果我插入该行
self.message_port_pub(pmt.intern('msg_out'), pmt.intern('hello world'))
在其中,它并没有真正将消息放在 msg_out 端口上。事实上,如果我使用我的块和消息调试运行 gnuradio 应用程序,则不会打印任何内容。我想我不明白 message_port_pub() 方法是如何工作的,因为我尝试了一些解决方案,但这些都没有奏效。
作为第二步,当然是引入时间循环。我认为使用 threading.Timer。
我到处寻找消息选通代码,但没有找到。 有人可以帮助我了解如何同时设置消息源和消息选通块吗?
谢谢。
【问题讨论】:
标签: python python-3.x gnuradio gnuradio-companion