如何在 GNURadio 中制作消息源和消息选通块

How to make a message source and message strobe blocks in GNURadio

我必须在 GNURadio 中创建消息源块。我必须使用 Windows 10 并且我不知道如何在其上安装和使用 gr-modtool,所以我正在尝试使用嵌入式 Python 块制作块。

消息块的行为类似于消息选通,它定期向输出端口发送消息。唯一不同的是,我的消息不是输入参数,而是一个需要周期性计算的变量。我正在尝试了解如何操作,但没有找到太多相关信息。

所以,这个块没有输入端口,只有一个消息输出端口,那么第一部分代码应该是

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() 是如何工作的,因为我尝试了很少的解决方案,但是其中 none 有效。

第二步,当然是时间循环的引入。我想使用 threading.Timer.

消息选通码我到处找,没找到。 有人可以帮助我了解如何制作消息源和消息选通块吗?

谢谢。

I looked everywhere the message strobe code but did not find it.

您可以找到消息选通源代码here

As second step, of course, it would be the introducing of the time loop. I think to use a threading.Timer.

是的,要实现这个你需要启动一个线程或使用某种定时器。