【问题标题】:How to declare the output type of a GNU Radio block to be PMT?如何将 GNU Radio 块的输出类型声明为 PMT?
【发布时间】:2016-02-25 10:20:04
【问题描述】:

简短:我想在我的块中输出 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 应该是什么?

【问题讨论】:

  • 你是指哪些管理员?

标签: python numpy gnuradio


【解决方案1】:

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 的一部分,称为file_message_source

【讨论】:

    猜你喜欢
    • 2016-07-17
    • 2019-12-16
    • 2015-11-19
    • 2019-07-09
    • 2016-06-15
    • 2022-01-24
    • 1970-01-01
    • 2021-07-25
    • 2017-12-10
    相关资源
    最近更新 更多