如何将 GNU Radio 块的输出类型声明为 PMT?
How to declare the output type of a GNU Radio block to be PMT?
简而言之:我想在我的块中输出 PMT,但 GNU Radio 不允许。
通常我在 GNU Radio 上为不同的应用程序编写 OOT 块。在这里,我试图编写一个块来将文件输出为消息类型。
问题是如果我们块的输出类型为numpy.float32
,我们声明相同使用:
def __init__(self):
gr.sync_block.__init__(self,name="<anything_you_want>",out_sig=[(numpy.float32)])
现在我有一个类似的问题,我希望输出是 GNU Radio 的 PMT 类型。在那种情况下 out_sig
应该是什么?
PMT(多态类型)是可变大小的便携式容器。
它们用于消息传递和标记,但不用于流数据。
如果要输出消息,则定义一个空的out_sig
,即
..., out_sig=[], in_sig=[])
并使用message_port_register_out
方法注册输出端口,使用message_port_pub
方法发送消息。
消息传递记录在 the doxygen documentation。
但是,我建议您学习 Guided Tutorials,并阅读第 1-5 章,其中解释了项目流和消息之间的区别。由于您已经可以编写 OOT,因此这对您来说应该是一个快速阅读:)
如果你想要一个已经使用上述方法的最小块,试试我的最小 variable_to_msg
块。
此外,已经有一个块可以打开文件并提取消息:它是 Tim O'Shea 的 gr-pyqt
, and is called file_message_source
.
的一部分
简而言之:我想在我的块中输出 PMT,但 GNU Radio 不允许。
通常我在 GNU Radio 上为不同的应用程序编写 OOT 块。在这里,我试图编写一个块来将文件输出为消息类型。
问题是如果我们块的输出类型为numpy.float32
,我们声明相同使用:
def __init__(self):
gr.sync_block.__init__(self,name="<anything_you_want>",out_sig=[(numpy.float32)])
现在我有一个类似的问题,我希望输出是 GNU Radio 的 PMT 类型。在那种情况下 out_sig
应该是什么?
PMT(多态类型)是可变大小的便携式容器。
它们用于消息传递和标记,但不用于流数据。
如果要输出消息,则定义一个空的out_sig
,即
..., out_sig=[], in_sig=[])
并使用message_port_register_out
方法注册输出端口,使用message_port_pub
方法发送消息。
消息传递记录在 the doxygen documentation。
但是,我建议您学习 Guided Tutorials,并阅读第 1-5 章,其中解释了项目流和消息之间的区别。由于您已经可以编写 OOT,因此这对您来说应该是一个快速阅读:)
如果你想要一个已经使用上述方法的最小块,试试我的最小 variable_to_msg
块。
此外,已经有一个块可以打开文件并提取消息:它是 Tim O'Shea 的 gr-pyqt
, and is called file_message_source
.